2014年5月12日 星期一

[IOS] 使用 FacebookSDK 實作 Facebook 登入 (一)


這篇文章會有時效性的問題,請注意 xcode 版本跟 Facebook Login for iOS 的版本,若有更新則本篇的參考價值不大。

最近剛好在研究如何實作 IOS 的 Facebook 登入 (我的開發環境為 Xcode5.1.1)
由於我對 IOS 是新手,如果你也是,以下先提供幾個必要的參考連結,我已經按照觀看順序排列 :) 如果錯誤,歡迎糾正><



  1. https://developers.facebook.com/docs/ios/getting-started 
    • 你必須要擁有什麼樣的環境跟配備
    • 你必須下載 SDK 並加到你的專案
    • 需要到 developers.facebook.com 申請一隻 App,並取得 APP ID 等資訊。(如果你已經有現有的 APP ID 可以使用,那只需要另外為這個 App 增加 IOS 的 Platform)
    • 設定 .plist
  2. Facebook Login for iOS v2.0
    • FacebookSDK 其實不只是可以做 Login,但因為這篇主要是在講 Login,你可以只看這篇就夠了。
    • (*) 文件上有做兩種教學
      • 一種是,使用原生的 Facebook LoginView 產生 login 的按鈕跟功能 (本篇就是介紹這種)
      • 另一種則是教你如何使用客製的按鈕,做出 Login 的功能 (我想這應該很實用,等我會了,就會寫文章了 :P)
  3. https://github.com/fbsamples/ios-howtos
    • 這是官方的 Example,你可以下載下來,尋找做 Login 的範本,直接打開 Xcode 觀看這些 Sample Code。
基本上這篇寫的記錄都是官方文件有所記載的,如果你不排斥看原文,應該可以忽略我這篇。



1. 一個現有的 Xcode 專案
可以的話最好可以有一個現有的 Xcode 專案,以我自己來說,為了做整個筆記的完整截圖,所以就是重開一個全新的 Project,以下是我這個 Project 的設定:
( 您可以多留意我用籃框的地方 )
( Organization Name 我是把我的網址倒過來寫)




2. 下載 Facebook SDK
下載並且安裝,預設會放到 ~/Documents/FacebookSDK



3. 新增/設定 APP
到 developers.facebook.com,選擇 『Apps->Create a New App』
(如果你有現有的 App 則直接到該 App 的設定畫面就好)




設定你的 App 的 Display Name 以及 Namespace
兩個 name 都希望你記得,因為在後面的 .plist 設定會用到,除非你找的到設定的地方:P
接著按下 『Create App』


建立成功的話,會進到該 App 的 Dashboard,你會看到
1. 你的 App ID
2. 你的 App Secret
3. 接著請你點選左側的 Settings



點選 Add Platform


在 Select Platform 的地方選擇 iOS



藉著設定 iOS platform 的設定:
1. Bundle ID 是必填,
    通常我都是回去看 xcode 的 Bundle ID 寫什麼,使用一樣的 Bundle ID
  
2. Single Sign On 開為 Yes.
3. Deep Linking 設為 No
4. 點選 Save Changes


關於 Facebook APP 申請以及 iOS Platform 的設定就到此告一個段落,接下來我們要做的事情,會回到 Xcode 以及專案本身,會做的事情只有兩件事:

1. 匯入 FacebookSDK
2. 設定 .plist  (plist 是 Property List,是一種檔案格式,提供儲存結構化資料)



4. 為你的專案加入 FacebookSDK
我們在第 2 個步驟,下載了 FacebookSDK,並且安裝。

開啟專案,在 Frameworks 資料夾按右鍵,選擇 Add Files To "你的專案"。




把 ~/Document/FacebookSDK 的 FacebookSDK.framework 加到專案


接著你就會看到 FacebookSDK.framework 被加到你的專案:


5. 設定 plist
設定 .plist,要多注意一點,通常如果有出錯,很有可能就是因為 .plist 沒有設定好。

.plist 在哪呢?
Supporting Files 資料夾底下有一個 專案名稱-info.plist 的檔案


.plist  主要的設定如下:

  • 新增一個名為  FacebookAppID  的 key,Type 是 String,值就是你的 App ID.
  • 新增一個名為  FacebookDisplayName,Type 是 String,值就是你當初在新增 App 時所設定的 DisplayName.

  • 新增一個名為  URL types 的 key,Type 是 Array,然後在 Item 0 新增子項目為 URL Schemes. 再新增一個子項目 (item 為 0 ) type 為 string,值為 fb加上你的 App ID (假設我的 app id 為 1234567890 那就是 fb1234567890)。這個是為了確保 App 接收 OAuth 的 callback URL。 

做完之後應該會如下圖所示: (要多注意 URL Types 的層次)






(一) 的部分介紹到此,(二) 會延續 (一) 的專案,使用 Facebook 的 Login Button,完成 Facebook Login 的步驟。

下一篇
[IOS] 使用 FacebookSDK 實作 Facebook 登入 (二)

沒有留言:

張貼留言

若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...