私のアプリはFacebookでログインを実装する必要がありますが、Facebookにログインするたびに、このアプリはすでに承認されていると言われます。すでにアプリを承認した場合、Facebookは見たようにオーケーボタンを押さなくても自動的に戻るはずです。他のアプリケーションでは?
添付画像をご覧ください
私のアプリはFacebookでログインを実装する必要がありますが、Facebookにログインするたびに、このアプリはすでに承認されていると言われます。すでにアプリを承認した場合、Facebookは見たようにオーケーボタンを押さなくても自動的に戻るはずです。他のアプリケーションでは?
添付画像をご覧ください
次の手順を実行して問題を修正し
ました。1-アプリの管理者としてFacebookにログインします。
2 -https://developers.facebook.com/apps/YOUR_FACEBOOK_APP_ID/summaryにアクセスします。
3- [設定] >[基本] >[ネイティブIOSアプリ
]に移動します
4- [ iOSSSO用に構成済み:]を有効に設定します
iOS / Androidでは、FBAccessTokenの有効期限は最大60日です。アプリでFBLoginを実行すると、アクセストークンを取得します。トークンを取得したら、再度ログインしないでください(そうしないと、アプリに有効期限が切れていないアクセストークンが既に付与されているため、このアプリはすでに承認されています)。有効期限が切れていないアクセストークンを再利用する必要があります。
このような :
if FBSDKAccessToken.currentAccessToken() != nil {
print(FBSDKAccessToken.currentAccessToken().userID)
print(currentAccessToken().tokenString)
//OR call the *FBGraphRequest*
}
注:アプリ内ブラウザーログインの場合(SVC:Safari View Controller)
詳細: https ://developers.facebook.com/blog/post/2015/10/29/Facebook-Login-iOS9/ および https://developers.facebook.com/docs/reference/ios/4.9/class/ FBSDKLoginManager /
ビルド設定でアプリのURLプレフィックスが適切であることを確認する必要があります。また、URLプレフィックスがFacebook開発者アプリのFacebook ID/URLプレフィックスと一致していることを確認してください。
編集:あなたの問題はおそらくaccess_tokenの有効期限が切れているため、権限を再要求する必要があることです。
これは、アプリケーションがoffline_access権限を要求しなかった場合に発生します。新しいSDKではoffline_accessは非推奨になり、access_tokenを拡張する必要があります。
このリンクを参照してください:https ://developers.facebook.com/docs/mobile/ios/build/#extend_token
この質問はすでに回答されているので、私は別の役立つ回答を追加したいと思いますSwift 3.0
:
SwiftでFBログインを使用しているときに問題が発生し、以前は次のようにしました。
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = .systemAccount
これはを使用するため、ユーザーをチェックするためのシステムアカウントは、ログインが許可されているかどうかを確認します。ログアウトして別のユーザーからログインしない限り、アプリケーションは、新規ログインの代わりに同じ「承認済み」メッセージを表示します。だから私はこのように使用しました、そしてこのトリックは仕事をします:
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = .web.
これは、ログアウト後のログイン画面を示しています。これがこの問題の解決に役立つことを願っています。
コメントしてください。ありがとう。
でログインする前に、現在のセッションがあるかどうかを確認する必要がありFBSDKLoginManager
ます。[loginManager logout]
ログインする前に使用しないでください。
if ([FBSDKAccessToken currentAccessToken])
{
NSLog(@"Token is available : %@",[[FBSDKAccessToken currentAccessToken]tokenString]);
// Now get details using graphpath.
} else {
// login with permissions using FBSDKLoginManager and get details using graphpath in completion
}
facebook.comに未解決のバグがあります
https://developers.facebook.com/bugs/190389531089978
しかし、バグはandroidでのみ発生し、iosは正常に動作します。
(ところで、foursquareとspotify androidアプリで同じ動作-それをチェックしてください)
iOS FBアプリケーションをシミュレーターではなくデバイスで実行すると、正常に動作し、すでに承認されている画面が表示されませんでした。ありがとうございました。