FacebookSDK 整合
第 1 步:安裝 SDK
你可以手動或通過 CocoaPods
安裝 SDK。強烈建議使用後一種選擇。
把這些行放在 Podfile
中:
target 'MyApp' do
use_frameworks!
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
end
在終端執行 pod install
然後開啟 .xcworkspace
而不是 .xcodeproj
。
FBSDKLoginKit
和 FBSDKShareKit
是可選的。你可能需要也可能不需要它們。
第 2 步:在 Facebook 上建立一個應用程式
轉到快速入門 - Facebook for Developers 建立應用程式。
Facebook 將在建立應用程式後要求你下載 SDK。如果你已經通過 CocoaPods 安裝了 SDK,則可以跳過此部分。
第 3 步:編輯 .plist
一個。要使你的應用能夠與 Facebook溝通,你需要在 .plist
檔案中新增一些設定。Facebook 將在快速入門頁面上為你提供自定義程式碼段。
灣將你的 .plist
檔案編輯為原始碼。
C。將自定義程式碼段貼上到原始碼中。小心! 該片段必須完全是 <dict>
標籤的子代。你的原始碼應該是這樣的:
<plist version="1.0">
<dict>
// ...
//some default settings
// ...
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb{FBAppId}</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>{FBAppId}</string>
<key>FacebookDisplayName</key>
<string>{FBAppName}</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>facebook.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>fbcdn.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
<key>akamaihd.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
</plist>
如果你將程式碼段貼上到錯誤的位置,則會遇到問題。
第 4 步:在快速入門頁面上告訴 Facebook 你的包識別符號
=> 如何獲取包識別符號
第 5 步:編輯你的 AppDelegate.swift
一個。
import FBSDKCoreKit
灣
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
}