ios - 为什么 FBSDKAccessToken.currentAccessToken() 在我的设备上返回 nil,但在 iOS 模拟器中工作正常?

标签 ios facebook swift

在我的 IOS9 应用程序中,我使用 Facebook SDK 4.7.0 图形 API 来搜索公共(public)场所。

我在应用程序委托(delegate)中使用 FBSDKApplicationDelegate,我相信它为我提供了有效的应用程序访问 token (因为我不使用任何用户特定数据,应用程序登录对我来说就足够了)。

当我在 ViewController 中调用 FBSDKAccessToken.currentAccessToken() 来检查 token 是否有效时,我总是在模拟器中成功,但在部署到真实设备上时却失败了。

有什么建议吗?

我已遵循新的 ios9 指南,并在我的 plist 中提供了附加信息。 由于我的应用程序仍在开发中,我的 Facebook 配套应用程序(保存了我的应用程序 ID 和 secret )仍然无法向公众开放。这会是一个问题吗?

最佳答案

用于检查 facebook 权限..& 授予权限...如果权限存在则自动获取 accesstoken,否则要求登录...

对于 swift

 var login: FBSDKLoginManager = FBSDKLoginManager()
login.logInWithReadPermissions(["public_profile", "email"], handler: { (result:FBSDKLoginManagerLoginResult!, error:NSError!) -> Void in

  if (error != nil)
  {
        //Process error
   }
   else if result.isCancelled
   {
        //Handle cancellations
   }
  else
  {
        // If you ask for multiple permissions at once, you
        // should check if specific permissions missing
        if result.grantedPermissions.contains("email"){
            //Do work
   }
     }
   })

对于 objective-c :

像这样检查权限。以下代码使用..

if ([[FBSDKAccessToken currentAccessToken]hasGranted:@"email"])
   {
      // add your coding here after login call this block automatically.
   }
   else
   {

//login code  **//if accesstoken expired...then call this block**

FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];

[loginManager logInWithReadPermissions:@[@"public_profile", @"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)




  }];

   }

关于ios - 为什么 FBSDKAccessToken.currentAccessToken() 在我的设备上返回 nil,但在 iOS 模拟器中工作正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33326462/

相关文章:

ios - 选择器 'indexPathForRow:inSection:' 没有已知的类方法

ios - 解析 - 检查用户是否存在

ios - 无法使用 includekey Parse 访问 PFObject 类型的数组

ios - 快速从响应中获取数组

ios - UIScrollView - 告诉 setContentOffset 和手动滚动之间的区别

html - 如何使用 metatag 在 ios 设备的移动网站上禁用缩放?

android - 是否有用于社交网络的一体化图书馆

javascript - Facebooksigned_request 数据和一些安全问题

javascript - 当查看者未登录 Facebook 时,Facepile iframe 为白色

ios - 如何在 Swift 4 中按列值对 UITableView 进行排序?