iOS
iOSアプリにFacebookログインを追加するSwiftチュートリアル
10 分
swiftチュートリアルを使用してiosアプリにfacebookログインを追加する はじめに このセクションでは、facebookログインを使用してユーザー登録を行うアプリを作成する方法を説明します。 parse serverのコア機能 をback4appを通じて。 前提条件 このクイックスタートを完了するには、次のものが必要です: xcode 。 back4appで作成されたアプリ。 次の手順に従ってください。 新しいparseアプリのチュートリアル を参照して、back4appでparseアプリを作成する方法を学びます。 back4appに接続されたiosアプリ。 注意: 次の手順に従ってください。 parse sdk (objc)のインストールチュートリアル を参照して、back4appに接続されたxcodeプロジェクトを作成します。 1 facebookの設定 facebookの機能を使用するには、次のことを行う必要があります 次のリンクにアクセスします facebook開発者サイト に移動し、アカウントとアプリを作成します。 parseアプリケーションの設定ページに、アプリケーションのfacebookアプリidを追加します。 facebook sdkの 始め方に関する指示 https //developers facebook com/docs/ios/getting started に従って、facebook sdkにリンクされたアプリを作成します。 2 facebookアプリをback4appにリンクする アプリのダッシュボードに移動します back4appのウェブサイト をクリックします サーバー設定 サーバー設定 「facebookログイン」ブロックを見つけて、 設定 設定 をクリックします。「facebookログイン」ブロックはこのように見えます 3\ xcodeプロジェクトに戻り、 info plist info plist からコードをコピーします facebookの設定 , ステップ4a、項目2を、 \<dict> \</dict> \<dict> \</dict> の部分に貼り付けます。 4\ facebookのダイアログボックスを使用するために、セクション4a、項目3からコードをコピーして、 info plist info plist ファイルに貼り付けます。 5\ 保存します 3 アプリの設定 アプリケーション\ didfinishlaunchingwithoptions メソッドに次の内容を追加します。parse sdkを初期化した後に 1 import fbsdkcorekit 2 import parse 3 4 // appdelegate swift 5 func application(application uiapplicatiofunc application( application uiapplication, didfinishlaunchingwithoptions launchoptions \[uiapplication launchoptionskey any]?) > bool { 6 // initialize parse 7 let parseconfig = parseclientconfiguration { 8 $0 applicationid = "parseappid" 9 $0 clientkey = "parseclientkey" 10 $0 server = "parseserverurlstring" 11 } 12 parse initialize(with parseconfig) 13 pffacebookutils initializefacebook(applicationlaunchoptions launchoptions) 14 } 2\ アプリデリゲートに次のハンドラーを追加します 1 func application( application uiapplication, open url url, sourceapplication string?, annotation any) > bool { 2 3 return fbsdkapplicationdelegate sharedinstance() application( 4 application, 5 open url, 6 sourceapplication sourceapplication, 7 annotation annotation 8 ) 9 10 } 11 12 func application( app uiapplication, open url url, options \[uiapplication openurloptionskey any] = \[ ]) > bool { 13 14 return fbsdkapplicationdelegate sharedinstance() application( 15 app, 16 open url, 17 sourceapplication options\[ sourceapplication] as? string, 18 annotation options\[ annotation] 19 ) 20 21 } 22 23 //make sure it isn't already declared in the app delegate (possible redefinition of func error) 24 func applicationdidbecomeactive( application uiapplication) { 25 fbsdkappevents activateapp() 26 } 4 ログイン & サインアップ pfuser pfuser は、ユーザーがfacebookを通じてログインまたはサインアップできる方法を提供します。これは、次のように logininbackgroundwithreadpermissions logininbackgroundwithreadpermissions メソッドを使用して行います 1 pffacebookutils logininbackground(withreadpermissions permissions) { 2 (user pfuser?, error error?) in 3 if let user = user { 4 if user isnew { 5 print("user signed up and logged in through facebook!") 6 } else { 7 print("user logged in through facebook!") 8 } 9 } else { 10 print("uh oh the user cancelled the facebook login ") 11 } 12 } このコードが実行されると、次のことが起こります ユーザーにfacebookのログインダイアログが表示されます。 ユーザーはfacebookを通じて認証し、あなたのアプリは handleopenurl handleopenurl を使用してコールバックを受け取ります。 私たちのsdkはユーザーのfacebookアクセスデータを受け取り、それを pfuser pfuser に保存します。同じfacebook idを持つ pfuser pfuser が存在しない場合、新しい pfuser pfuser が作成されます。 ユーザーとともにあなたのコードブロックが呼び出されます。 現在のユーザー参照がこのユーザーに更新されます。 permissions引数は、アプリがfacebookユーザーから必要とする権限を指定する文字列の配列です。これらの権限は読み取り権限のみを含む必要があります。 ユーザーのために投稿権限を取得するには、例えば、彼らの代わりにステータス更新を投稿できるようにするために、\[pffacebookutils logininbackgroundwithpublishpermissions ] logininbackgroundwithpublishpermissions ] 1 pffacebookutils logininbackgroundwithpublishpermissions(\["publish actions"], { 2 (user pfuser?, error nserror?) > void in 3 if user != nil { 4 // your app now has publishing permissions for the user 5 } 6 }) 5 リンク 既存の pfuser pfuser をfacebookアカウントに関連付けたい場合は、次のようにリンクできます 1 if !pffacebookutils islinkedwithuser(user) { 2 pffacebookutils linkuserinbackground(user, withreadpermissions nil, { 3 (succeeded bool?, error nserror?) > void in 4 if succeeded { 5 print("woohoo, the user is linked with facebook!") 6 } 7 }) 8 } 6 リンク解除 ユーザーからfacebookのリンクを解除したい場合は、次のようにします 1 pffacebookutils unlinkuserinbackground(user, { 2 (succeeded bool?, error nserror?) > void in 3 if succeeded { 4 print("the user is no longer associated with their facebook account ") 5 } 6 })