gpt4 book ai didi

iphone - fbDidLogin 的问题从未调用过 iOS

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:10:19 26 4
gpt4 key购买 nike

我的应用在保存 access_token 时遇到问题。问题是,当 iPhone 没有安装 Facebook 应用程序时,safari 会处理这个问题,没有问题。但是一旦 iPhone 安装了 Facebook 应用程序。它只是不保存访问 token ,每次需要对 Facebook 执行某些操作时都会打开 Facebook 应用程序。然后它说,你已经给了......许可......

这就是我在 viewdidload 中所做的,以便第一次请求许可并从用户默认值接收访问 token :

facebook = [[Facebook alloc] initWithAppId:@"APPID"];


NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}

NSArray* permissions = [[NSArray arrayWithObjects:
@"read_stream", @"offline_access", nil] retain];

if (![facebook isSessionValid]) {
[facebook authorize:permissions delegate:self];
}

这就是我在 fbdidlogin 中所做的:

- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}

但是对于某种方式,当 Facebook 应用程序控制时,这只是行不通......每次 View 确实加载时,它都会授权,再次加载。

有人知道吗?

谢谢!

顺便说一句:我还有以下行:

(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [[controller facebook] handleOpenURL:url]; }

最佳答案

我刚遇到这个问题,相信我可能已经找到了您的解决方案。当您在 Facebook 上创建应用程序时,您必须编辑您的应用程序设置以允许本地 iOS 应用程序。选择的 ios 包 ID 必须与您正在创建的应用程序中的包 ID 完全匹配。 Facebook 声明他们会在授权您的应用程序之前检查这一点。有趣的是,如果您从设备中删除 facebook 应用程序,然后尝试使用网络浏览器对其进行身份验证,并且似乎完全绕过此“安全”。这就是乔斯解决方案“有效”的原因。 Facebook 不会发回错误消息,因此追踪起来很有趣。我想我会把这个答案放在那里,希望能为 future 的开发者省去一些麻烦。我希望这会有所帮助。

关于iphone - fbDidLogin 的问题从未调用过 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7044412/

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