Facebook登录给我已经授权此应用程序,而无需自动返回应用程序

时间:2012-06-04 21:24:16

标签: iphone objective-c ios facebook

我的应用程序应该用facebook实现登录但我注意到每次我想登录facebook告诉我你已经授权这个应用程序,问题是我已经授权应用程序facebook应该自动返回而不按okey按钮正如我在其他应用程序中看到的那样?

见附图 enter image description here

7 个答案:

答案 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应用程序运行到设备而不是模拟器中它运行正常,并且没有显示已经授权的屏幕。 谢谢。