Iphone 为什么Facebook SDK要求两次授权?
我正在Facebook SDK iOS的帮助下实施我的项目。 我遇到了一个奇怪的现象 我首先输入Facebook对象的初始化代码:Iphone 为什么Facebook SDK要求两次授权?,iphone,ios,xcode,facebook,facebook-graph-api,Iphone,Ios,Xcode,Facebook,Facebook Graph Api,我正在Facebook SDK iOS的帮助下实施我的项目。 我遇到了一个奇怪的现象 我首先输入Facebook对象的初始化代码: self.facebook = [[Facebook alloc] initWithAppId:appID andDelegate:self]; 然后我会检查令牌是否可用,如果不可用,请转到我的登录视图 然后,我添加了一个按钮,该按钮将触发我的应用程序委托中的登录到Facebook方法,在该按钮中,我只调用了authorize方法 - (void)LoginToF
self.facebook = [[Facebook alloc] initWithAppId:appID andDelegate:self];
然后我会检查令牌是否可用,如果不可用,请转到我的登录视图
然后,我添加了一个按钮,该按钮将触发我的应用程序委托中的登录到Facebook方法,在该按钮中,我只调用了authorize方法
- (void)LoginToFacebook
{
NSArray *permissions = [[NSArray alloc] initWithObjects:@"email",nil];
[self.facebook authorize:permissions];
}
然后用这个来处理转换
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
// attempt to extract a token from the url
return [self.facebook handleOpenURL:url];
}
我遇到的问题是,当我重置我的模拟器并运行项目时,首先一切正常,显示我的登录页面。当我按下登录按钮时,
它首先要求我正常登录,然后授权应用程序。然而,当我按下OK(确定)按钮时,假设我之前已经授权了该应用程序,在调用fbDidLogin的程序中,会弹出另一个safari窗口,并再次请求授权
我一直在寻找解决方案,发现有人不想将authorize方法和feed对话框放在同一个位置。然而,在我的代码中,我没有做这些事情,我确实有应用程序请求对话框代码,但我很确定它们不是放在同一个地方
此外,在我按了两次OK按钮后,它进入登录页面,错误代码为400。。。。当我点击另一个按钮获取用户的朋友时,它成功了
奇怪的现象是,如果我得到了用户的朋友,并且注销并再次登录,相同的代码只会弹出一个safari窗口进行授权
所以我很困惑,有人能帮我吗
编辑
我刚刚发现,如果我不包括权限,应用程序运行良好,但如果我包括权限,问题仍然存在,Safari在第一次登录时会弹出两次