本文章包含

加入 facebook sdk(cocoapad)

swift串接 facebook sdk

常見問題

範例專案

如果iOS需要接入FB登入功能,有2個步驟

1. 在FB Developer中建立「應用程式」,取得「應用程式編號」

2. 在Project中進行設定,並接入SDK,並撰寫程式

建立FB應用程式

2. 點選「我的應用程式」->「新增應用程式」,輸入「顯示名稱」(顯示名稱會在使用者登入時顯示)。

輸入應用程式「顯示名稱」並回答安全應證。

建立應用程式

3. 點選「Facebook登入」

新增Facebook登入功能

4. 點擊左側側邊欄的「Facebook 登入」->「快速入門」

選擇iOS

(選擇後會出現Facebook的完整教學,您可以跟著做FB教學做,或者繼續往下查看Codus的圖文教學。)

選擇平台-iOS

5. 點擊左側側邊欄的「設定」->「基本資料」中點擊「新增平台」,選擇iOS

新增平台

6. 輸入「套件組合編號」(您的iOS APP的Bundle ID)

輸入套件組合編號

如此一來就完成了 Facebook的應用程式建立

建立專案並接入SDK

“

請確保 iOS專案的Bundle ID與 Facebook開發者後台填寫的 Bundle ID一致

”

1. 在plist中輸入資料,包含 FacebookAppID、 FacebookDisplayName與URL Schemes

plist資料

2. iOS專案引入SDK,可以參考 Facebook官方文件,這邊建議使用cocoapods引入。

pod 'FBSDKCoreKit'

pod 'FBSDKLoginKit'

pod 'FBSDKShareKit'

pod 'FBSDKPlacesKit'

3. 在AppDelegate加入FB程式

4. 撰寫登入程式碼

“

恭喜完成 Facebook登入功能!

”

常見問題

Q: 登入後可以取得accessToken,但是沒有profile資料


A: 這問題在Android與iOS上都有。

其實使用Facebook只有取得您要求權限的「AccesssToken」,與其使用者id,並不包含任何資料,您必須再去取得Profile才行。詳情可以見「範例專案」的loadCurrentProfile方法。

Q: 取得的使用者id好像跟使用者的id不一樣


A: 這是Facebook的政策,每一個不同的「FB應用程式」所取得的同一個使用者的id會不一樣,稱之為「app-scoped IDs」,意即這個id只有在取得的應用程式中有效。

Q: 無法取得使用者email


A: Facebook只會返回經過驗證的Email,這是開發者無法避免的,甚至是使用者可以隨時註銷給應用程式的權限,因此您無法預期應用程式一定會取得使用者的Email。

Q: 無法取得其他資料,ex: 使用者所在地點


 

A: 要取得使用者的資料,除非是必定存在的既有資料(例如:使用者id),有三個點需要特別注意:

  1. 使用者有在Facebook留下該資料:
    若使用者沒有留下資料,那麼應用程式再怎麼嘗試去取得資料,都會返回nil。
  2. 應用程式需要開通此權限:
    一個應用程式預設批准的登入權限有三個:email與public_profile(括姓名、大頭貼照、性別和年齡範圍)與user_friends(使用者有在使用此應用程式的朋友名單)
  3. 登入時需要涵蓋該權限:
    在撰寫程式時,需要設定登入的權限,記得加入權限。
範例專案Github連結: 包含登入、取得Profile(Facebook應用程式是我本人建立測試的)
FBLINETwitterLinkIn
回部落格