在我的IOS9应用程序中,我使用Facebook SDK 4.7.0 graph api来搜索公共场所。
我在我的应用委托中使用FBSDKApplicationDelegate,我相信它为我提供了有效的应用访问令牌(因为我不会使用任何用户特定数据,因此应用程序登录对我来说已足够)。
当我在我的ViewController中调用FBSDKAccessToken.currentAccessToken()来检查令牌是否有效时,我总是在模拟器中成功,但在真实设备上部署时却没有。
有什么建议吗?
我已按照新的ios9指南进行操作,并在我的plist中提供了其他信息。 由于我的应用程序仍在开发中,我的Facebook伴侣应用程序(其中包含我的应用程序ID和密码)仍然无法供一般公众使用。这可能是个问题吗?
答案 0 :(得分:0)
用于检查facebook权限..&给予许可......如果存在权限,则自动获取其他明智的访问请求登录...
对于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
}
}
})
目标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)
}];
}