本文章包含
加入 facebook sdk(cocoapad)
swift串接 facebook sdk
常見問題
範例專案
如果iOS需要接入FB登入功能,有2個步驟
1. 在FB Developer中建立「應用程式」,取得「應用程式編號」
2. 在Project中進行設定,並接入SDK,並撰寫程式
建立FB應用程式
- 登入FB開發者網站
2. 點選「我的應用程式」->「新增應用程式」,輸入「顯示名稱」(顯示名稱會在使用者登入時顯示)。
輸入應用程式「顯示名稱」並回答安全應證。
3. 點選「Facebook登入」
4. 點擊左側側邊欄的「Facebook 登入」->「快速入門」
選擇iOS
(選擇後會出現Facebook的完整教學,您可以跟著做FB教學做,或者繼續往下查看Codus的圖文教學。)
5. 點擊左側側邊欄的「設定」->「基本資料」中點擊「新增平台」,選擇iOS
6. 輸入「套件組合編號」(您的iOS APP的Bundle ID)
建立專案並接入SDK
“
請確保 iOS專案的Bundle ID與 Facebook開發者後台填寫的 Bundle ID一致
”
1. 在plist中輸入資料,包含 FacebookAppID、 FacebookDisplayName與URL Schemes
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),有三個點需要特別注意:
- 使用者有在Facebook留下該資料:
若使用者沒有留下資料,那麼應用程式再怎麼嘗試去取得資料,都會返回nil。 - 應用程式需要開通此權限:
一個應用程式預設批准的登入權限有三個:email與public_profile(括姓名、大頭貼照、性別和年齡範圍)與user_friends(使用者有在使用此應用程式的朋友名單) - 登入時需要涵蓋該權限:
在撰寫程式時,需要設定登入的權限,記得加入權限。
如此一來就完成了 Facebook的應用程式建立