Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 为什么Facebook SDK要求两次授权?_Iphone_Ios_Xcode_Facebook_Facebook Graph Api - Fatal编程技术网

Iphone 为什么Facebook SDK要求两次授权?

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

我正在Facebook SDK iOS的帮助下实施我的项目。 我遇到了一个奇怪的现象

我首先输入Facebook对象的初始化代码:

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在第一次登录时会弹出两次