制限付きログインのためにエンドポイントに変更が加えられ、limited.facebook.comからアクセス可能になりました。
利用者がFacebookでアプリにログインする際にアクセス許可をアプリに付与することができるので、アプリは情報を取得したり、利用者の代わりにFacebookでアクションを実行したりできます。
以下の手順で、FacebookログインをiOSプロジェクトに追加することができます。
iOS用Facebookログインを使用する前に、開発環境を設定します。
Swift Package Manager (SPM)を使用するInfo.plist
ファイルに、アプリに関するデータが含まれているXMLスニペットを挿入します。 Facebookログインを統合すると、特定のアプリイベントは、アプリイベントの自動記録を無効にしない限り、イベントマネージャのために自動的に記録、収集されます。これは、アプリコードで変更できます。また、アプリダッシュボードかイベントマネージャの[アプリイベント]の下のトグルで切り替えることもできます。AutoLogAppEventsEnabled
のフラグとトグルとの間で値が競合している場合、「Facebook SDKの自動イベント記録」のトグル値が優先されることに注意してください。収集される情報やアプリイベントの自動記録を無効にする方法については、アプリイベントの自動記録をご覧ください。
Info.plist
を右クリックし、[プログラムで開く]▸[ソースコード]を選択します。 <dict>...</dict>
)に貼り付けます。 [CFBundleURLSchemes]
の<array><string>
にあるAPP-IDは、自身のアプリIDに置き換えてください。FacebookAppID
の<string>
にあるAPP-IDは、自身のアプリIDに置き換えてください。FacebookClientToken
の<string>
にあるCLIENT-TOKENは、アプリダッシュボードの[設定 > 高度 > クライアントトークン]にある値に置き換えてください。FacebookDisplayName
の<string>
にあるAPP-NAMEは、実際のアプリ名に置き換えてください。Info.plist
に以下を含める必要があります。 Info.plist
にキーとしてFacebookAutoLogAppEventsEnabled
を追加することで、アプリイベントの自動収集をtrueまたはfalseに直接設定できるようになります。
AppDelegate.swift
内のコードを置き換えます。このコードは、アプリの起動時にSDKを初期化し、ログインアクションやシェアアクションが実行されたときにネイティブFacebookアプリのログインとシェアリングをSDKが処理できるようにします。このコードを使用しない場合は、ユーザーはFacebookにログインした状態で、ログイン用のアプリ内ブラウザーを使用する必要があります。 // AppDelegate.swift import UIKit import FacebookCore @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { ApplicationDelegate.shared.application( application, didFinishLaunchingWithOptions: launchOptions ) return true } func application( _ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:] ) -> Bool { ApplicationDelegate.shared.application( app, open: url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplication.OpenURLOptionsKey.annotation] ) } }
SceneDelegate
に移動されました。iOS 13以上を使用している場合は、次のメソッドを SceneDelegate
に追加して、ログインや共有機能のような操作を意図したとおりに行えるようにしてください。 // SceneDelegate.swift import FacebookCore ... func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { guard let url = URLContexts.first?.url else { return } ApplicationDelegate.shared.application( UIApplication.shared, open: url, sourceApplication: nil, annotation: [UIApplication.OpenURLOptionsKey.annotation] ) }
iOSアプリにFacebookログインボタンを使用します。
// Add this to the header of your file, e.g. in ViewController.swift import FacebookLogin // Add this to the body class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let loginButton = FBLoginButton() loginButton.center = view.center view.addSubview(loginButton) } }
AccessToken.current
で表します。 LoginManager
により設定され、AccessToken.current
が設定されるとキーチェーンストアにも自動的に書き込まれます。 AccessToken
にはuserID
が含まれており、これを使用して利用者を特定できます。 permissions
プロパティを FBLoginButton
オブジェクトで設定します。