gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:58:15 24 4
gpt4 key购买 nike

在我的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com