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

时间:2012-08-27 04:18:27

标签: iphone ios xcode facebook facebook-graph-api

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

我首先为Facebook对象添加了初始化代码:

self.facebook = [[Facebook alloc] initWithAppId:appID andDelegate:self];

然后我将检查令牌是否可用,如果没有,请转到我的登录视图...

然后我添加了一个按钮,它会在我的应用代理中触发登录到Facebook方法,并且我只调用了授权方法

- (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];
}

我遇到的问题是,当我重置我的模拟器并运行项目时,一开始一切正常,我的登录页面会显示出来。当我按下登录按钮时 它首先让我登录(NORMAL),然后授权应用程序。但是,当我按下Okay按钮时(假设我之前已经授权了应用程序),在程序fbDidLogin被调用时,会弹出另一个safari窗口并再次请求授权...

我一直在寻找解决方案并找到了this question,其中表示不希望将授权方法和提要对话框放在同一个地方。然而,在我的代码中,我没有做这些事情(我确实有应用程序请求对话框代码,但我很确定它们不会放在同一个地方)。

此外,在我按下Okay按钮两次后,它会进入登录页面,错误代码为400 ....当我点击另一个按钮获取用户的朋友时,它会成功。

奇怪的现象是,如果我确实得到了用户的朋友并注销并再次登录,相同的代码只会弹出一个safari窗口进行授权.....

所以我很困惑,所以任何人都可以帮助我?

修改

我刚刚发现,如果我不包含权限,该应用程序运行正常,但如果我包含它,问题仍然存在Safari在第一次登录时弹出两次...

0 个答案:

没有答案