Xamarin Facebook

Xamarin Facebook SDK(for iOS)應用

李素玫 2016/11/28 11:00:00
642







主題

Xamarin Facebook SDK(for iOS)應用

文章簡介

Xamarin Studio開發iOS專案,利用Facebook提供的套件,取得登入者資訊

作者:

李素玫

版本/產出日期:

V1.0/2016.11.25




1. 前言

隨著網路科技發達,越來越多網站、遊戲、行動裝置APP…等產物,為了讓使用者順利登入,往往會提供多種的登入方式,讓使用者可以簡單的、快速的登入。

在眾多社群軟體中,Facebook會員上億,且也提供開發者便利的溝通方式可以存取Facebook資訊,所以大多數的網站、APP都會提供『以Facebook 帳戶登入/註冊』的方法。

以下針對Xamarin開發者介紹,在iOS APP中如何使用Facebook 提供的套件取得Facebook使用者公開資訊。



2. 目的

介紹Xamarin開發使用的套件:Facebook iOS SDK安裝及設定。

使用Facebook提供套件如何取得資訊(Facebook暱稱、頭像、Email)及疑難排除。



3. 開始前準備

(1) 本範例使用的環境:

MacBook Pro

Xamarin Studio(6.1.2)

(2) 建立FB應用程式

FB開發平台(https://developers.facebook.com/ )建立應用程式,取得應用程式名稱及編號,並在設定-基本資料內新增iOS平台(表示此應用程式可在iOS平台上使用)



4. 套件取得及安裝

4.1、 Xamarin Studio新增一專案for iOS應用程式,在專案元件(component)按右鍵,選擇『取得更多元件』


4.2、 進入頁面後以關鍵字搜尋取得Facebook iOS SDK,按下『Add to App』即可將套件安裝至專案



5. 設定步驟及程式說明

5.1、 在Info.plist加入設定。直接以文字檔方式開啟檔案,貼入下方設定。

<key>LSApplicationQueriesSchemes</key>

<array>

<string>fbapi</string>

<string>fbapi20130214</string>

<string>fbapi20130410</string>

<string>fbapi20130702</string>

<string>fbapi20131010</string>

<string>fbapi20131219</string>

<string>fbapi20140410</string>

<string>fbapi20140116</string>

<string>fbapi20150313</string>

<string>fbapi20150629</string>

<string>fbauth</string>

<string>fbauth2</string>

<string>fb-messenger-api20140430</string>

<string>fbapi</string>

<string>fb-messenger-api</string>

<string>fbshareextension</string>

</array>


5.2、  在Info.plist增加進階選項

從專案裡的Info.plist點擊兩下,進入編輯頁面,在進階頁籤新增一個URL 類型,URL Schemes填入’fb’+AppId。此處AppId帶入在FB開發平台申請的應用程式編號及名稱。



5.3、 在AppDelegate.cs加入程式


此處appId、appName帶入在FB開發平台申請的應用程式編號及名稱。


5.4、 主程式撰寫

(1). 加入參考FB組件


(2). 建立FB自訂按鈕

這裡LoginBehavior有Native、Browser、SystemAccount、Web選項,可以控制FB按鈕點下自訂登入頁開啟的方式,若用原生方式(Native)有可能因版本未及時更新造成些許影響,所以我採用Web方式呈現。


(3). 建立FB頭像物件

預設顯示FB頭像,登入後,圖片會自動載入登入者頭像。


(4). 取得email資訊

        email不屬於基本公開資訊,須登入後再使用 AccessToken.CurrentAccessToken發出Request取得。


(5). 當按下按鈕後,事件處理

(6). 加入FB通知事件,當Profile有變更,會觸發通知。

可在此處加入登入後要處理的事情,例如畫面顯示FB暱稱、取得email資訊或其他。



6. 疑難排除

6.1、 依照範例實作後,登入FB出現錯誤:Error Domain=com.facebook.sdk.login Code=308”(null)”

解決辦法:因專案預設未設定Entitlements.plist造成的錯誤,於專案右鍵—選項—iOS Bundle Signing,加入Entitlements.plist即可解決

6.2、 建置出現錯誤provisioning profiles match the installed iOS signing identities

解決辦法:產生並安裝provisioning profile

須先有一組AppleID,至https://developer.apple.com 點選AccountCertificates, IDs & Profiles,參考https://developer.xamarin.com/guides/mac/deployment,_testing,_and_metrics/publishing_to_the_app_store/profiles/ 網址說明產生並下載安裝



7. 範例展示



8. 考來源

Facebook iOS SDK元件介紹-https://components.xamarin.com/gettingstarted/facebookios

產生Provisioning Profile檔-https://developer.xamarin.com/guides/mac/deployment,_testing,_and_metrics/publishing_to_the_app_store/profiles/

李素玫