iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 28
0
Software Development

iOS App 實作開發新手村系列 第 28

Day28 第三方登入-臉書

  • 分享至 

  • xImage
  •  

20191014

前言

今天的內容是第三方登入的練習,首先練習的是Facebook Login,雖然我們不能靠臉吃飯,但是我們可以靠臉書登入(誤)。

現在,我們馬上開始!

練習過程

前置作業

  1. 首先點選『註冊』成為開發人員
    https://developers.facebook.com/docs/facebook-login/ios

  1. 直接下一步

  1. 輸入電話取得驗證碼

  1. 選擇你的身份,本文選擇『開發人員』

  1. 點選『建立首款應用程式』

  1. 輸入應用程式名稱,本文例子為『ToDoList』

  1. 完成安全驗證 (如果有的話)

  1. 提交

  1. Facebook登入中點選『設定』

  1. 選擇『iOS』

  1. 設定套件識別碼『com.mike.Day28FBLogin』

  1. 啟用單一登入

  1. 這一步將在專案設定內完成

  1. 設定『隱私政策網址』,並『開啟』應用程式

當設定都完成後,要啟動應用程式,發生錯誤。
因此透過(ref7)來產生隱私政策網址,這邊要注意有些選項的設定是付費的,如果只是測試用,可選擇0元的選項即可。

到這邊已經完成了FB相關的設定,而官方也有很完整的教學,接者後面進入我們的專案部分

專案相關

  1. 首先我們建立全新的專案『Day28FBLogin』來測試

專案建立請參考 Day13
https://ithelp.ithome.com.tw/articles/10221914

  1. 透過cocoapod來安裝
 pod 'FBSDKLoginKit'

套件安裝請參考 Day17
https://ithelp.ithome.com.tw/articles/10223844

  1. 以原始碼形式開啟來編輯『info.plist』,並加入以下代碼
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb{your fb id}</string>
        </array>
    </dict>
</array>
<key>FacebookAppID</key>
<string>{your fb id}</string>
<key>FacebookDisplayName</key>
<string>ToDoList</string>
  • 這一步驟與前置作業13對應

  • 如果需要分享或其他地方切換到FB,也加入以下代碼

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb-messenger-share-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
</array>
  1. 修改專案的『Build Settings』中的 Other Linker Flags,加入『-ObjC』

  1. 連接應用程式委派,修改AppDelegate.swift

  • 這部分作者測試無法加入,不知道是不是因為版本問題,因此先做個筆記跳過,後續在回頭看看
  1. 在viewDidLoad事件加入以下代碼
override func viewDidLoad() {
    super.viewDidLoad()
    
    let loginButton = FBLoginButton()
    loginButton.center = self.view.center
    self.view.addSubview(loginButton)
            
}
  • 使用FB為我們設定好的按鈕

  • 也可以自訂按鈕,搭配自己的程式碼

實機測試畫面

  1. 出現登入按鈕

  1. 提示訊息

  1. 使用email登入,讀者也可以使用FB應用程式登入

  1. 不儲存密碼

  1. 登入後,會改為顯示Log out登出按鈕

  1. 點選登出,會回到一開始的登入畫面

總結

今天我們練習了FB登入功能,練習的過程中有發現,如果FB應用程式沒有『開啟』,那只能用自己(開發者)的帳號來做測試。而開啟FB應用程式,則需要設定『隱私政策網址』。

發現FB開發者網站,快速設定的教學中,代碼大多是Object-C,因此,又花了些時間找尋相關資料。

今天的內容就到這邊,感謝讀者們的閱讀。


Github:

https://github.com/chiron-wang/IT30_11

參考資料與延伸閱讀

  1. 深入淺出 iPhone 開發 (使用 Swift4) - WeiWei
    https://www.udemy.com/course/iphone-swift4/

  2. iOS 12 App 開發快速入門與實戰(繁體中文)
    https://www.udemy.com/course/ios-12-app/

  3. 心智圖軟體Xmind
    https://www.xmind.net/

  4. FBLogin 官方說明文件
    https://developers.facebook.com/docs/facebook-login/ios/

  5. FBLogin 官方說明文件 (swift)
    https://developers.facebook.com/docs/swift/login

  6. FBLogin 官方說明文件 (swift) 中文版
    https://developers.facebook.com/docs/facebook-login/ios?locale=zh_TW

  7. privacypolicies
    https://privacypolicies.com

  8. 產生 App 上架需要的隱私權政策 URL
    https://medium.com/%E5%BD%BC%E5%BE%97%E6%BD%98%E7%9A%84-swift-ios-app-%E9%96%8B%E7%99%BC%E5%95%8F%E9%A1%8C%E8%A7%A3%E7%AD%94%E9%9B%86/%E7%94%A2%E7%94%9F-app-%E4%B8%8A%E6%9E%B6%E9%9C%80%E8%A6%81%E7%9A%84%E9%9A%B1%E7%A7%81%E6%AC%8A%E6%94%BF%E7%AD%96-url-7bc4746cf75d

[FBLogin]

  1. Swift4 Day77:App的Facebook登入手把手教學
    https://medium.com/100-days-of-swift/swift4-day77-facebook%E7%99%BB%E5%85%A5-6f0a22c3d438

  2. iOS開發者指南:如何使用Firebase整合Facebook登入
    https://www.appcoda.com.tw/firebase-facebook-login/

  3. FB登入教學與常見問題-iOS-swift
    http://codus.me/blog/fb-login-iOS.html


上一篇
Day27 橘皮貓與SwiftUI的邂逅 (電子書)
下一篇
Day29 第三方登入-臉書 (取得登入資訊)
系列文
iOS App 實作開發新手村36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
frank61003
iT邦新手 5 級 ‧ 2020-08-25 15:43:43

請問一下FB登入頁有辦法跟Google登入頁一樣有按鈕切換使用者嗎? 看起來FB登入只有continue 跟 canecl,用過FB logout也沒辦法清掉紀錄狀態。查到的資料是說要把手機瀏覽器料的FB登出,再次開啟APP FB登入畫面才能切換使用者

mikewang iT邦新手 5 級 ‧ 2020-08-25 16:38:51 檢舉

管家大大你好:
查了一下資料,目前沒有看到可以切換使用者的方式。

無法登出的問題,也許可以參考如下語法,看看能不能解決你的問題

fbLoginManager.loginBehavior = .web

參考文件

我要留言

立即登入留言