我的应用程序应该使用 facebook 实现登录,但我注意到每次我想登录 facebook 时都告诉我你已经授权了这个应用程序,如果我已经授权了这个应用程序,facebook 应该自动返回而不按我看到的 okey 按钮在其他应用程序中?
见附图
我的应用程序应该使用 facebook 实现登录,但我注意到每次我想登录 facebook 时都告诉我你已经授权了这个应用程序,如果我已经授权了这个应用程序,facebook 应该自动返回而不按我看到的 okey 按钮在其他应用程序中?
见附图
我通过执行以下步骤解决了我的问题:
1- 以管理员身份登录到您的 Facebook 到您的应用程序。
2- 转到https://developers.facebook.com/apps/YOUR_FACEBOOK_APP_ID/summary。
3- 转到设置>基本>本机 IOS 应用程序
4- 将Configured for iOS SSO:设置为启用
在 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 Login 时,我遇到了问题,我以前这样做过:
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = .systemAccount
使用时,系统帐户检查用户是否被授权登录。除非您通过不同的用户注销并登录,否则应用程序会显示相同的“已授权”消息来代替 Fresh login。所以我用了这种方式,这个技巧就可以了:
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
但是这个bug只出现在android,ios工作正常。
(顺便说一句。foursquare 和 spotify android 应用程序中的相同行为 - 看看)
将您的 iOS FB 应用程序运行到设备而不是模拟器中,它工作正常,并且没有显示已经授权的屏幕。谢谢你。