Xamarin Facebook SDK(for iOS)應用
主題: |
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 點選Account—Certificates, 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/