我的应用程序应该用facebook实现登录但我注意到每次我想登录facebook告诉我你已经授权这个应用程序,问题是我已经授权应用程序facebook应该自动返回而不按okey按钮正如我在其他应用程序中看到的那样?
见附图
答案 0 :(得分:6)
我通过以下步骤解决了我的问题:
1-以管理员身份登录您的应用程序。
2-转到https://developers.facebook.com/apps/YOUR_FACEBOOK_APP_ID/summary
3-转到设置> 基本> 原生IOS应用
4-将为iOS SSO配置设置为已启用
答案 1 :(得分:2)
在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/
答案 2 :(得分:1)
您需要确保您的应用在Build Settings中具有正确的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
答案 3 :(得分:1)
由于此问题已经回答,但我想为Swift 3.0
添加另一个有用的答案:
在Swift中使用FB登录时,我遇到了问题,我之前就是这样做的:
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = .systemAccount
如此使用,系统帐户检查用户是否有权登录。除非您注销并通过不同的用户登录,否则应用程序会显示相同的“已经授权”消息,而不是新登录。所以我用这种方式,这个技巧做了工作:
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = .web.
注销后显示登录屏幕。 希望这有助于解决这个问题。
随意发表评论。感谢。
答案 4 :(得分:1)
在使用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
}
答案 5 :(得分:0)
facebook.com上有一个漏洞
https://developers.facebook.com/bugs/190389531089978
但是这个bug只出现在android上,ios工作正常。
(顺便说一下。在foursquare中的相同行为,并发现android应用程序 - 检查出来)
答案 6 :(得分:0)
将您的iOS FB应用程序运行到设备而不是模拟器中它运行正常,并且没有显示已经授权的屏幕。 谢谢。