请求用户信息时出现Facebook iOS SDK错误

时间:2013-01-01 21:29:25

标签: objective-c ios facebook

我正在研究iPhone应用程序,其中一部分依赖于Facebook集成。我从网站下载了SDK的3.1版本,并按照第一个教程进行了操作,该教程位于以下链接:Authenticate

我在iPhone 4和Xcode 4.5上使用iOS 6.0.1。

虽然登录正常,但在执行步骤here以请求基本用户信息时,应用程序会出现以下错误:

2013-01-01 23:13:57.966 AppName[8691:907] Error: HTTP status code: 400
2013-01-01 23:13:57.977 AppName[8691:907] FBSDKLog: Response <#1111> <Error>:
The operation couldn’t be completed. (com.facebook.sdk error 5.)

这是我用来请求信息的代码:

if (FBSession.activeSession.isOpen) {
    [FBSettings setLoggingBehavior:[NSSet setWithObjects:
                                    FBLoggingBehaviorFBRequests, nil]];

    [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection,
                                                           NSDictionary<FBGraphUser> *aUser,
                                                           NSError *error) {
        if (!error) {
            NSLog(@"%@", [[FBSession activeSession] accessToken]);
            userProfileImage.profileID = aUser.id;

            self.user = [[User alloc] initWithName:aUser.name andLocation:[aUser.location objectForKey:@"name"]];
            [self.user saveUser];
            [nameTextField setText:[self.user getName]];
            [locationTextField setText:[self.user getLocation]];
        }
    }];
}

奇怪的是FBRequest在模拟器中工作。我检查了访问令牌,我也在iPhone上获得了一个。

另一件可能很重要的事情是:在模拟器上,应用程序会重定向到获得授权的Facebook网站(我可以在Facebook的应用列表中查看)。另一方面,从设备登录时,我第一次登录时只收到标准提醒,并且该应用程序未在Facebook上添加。

P.S。:这是我的第一个问题,所以我为信息的数量(或缺乏)道歉。提前感谢您帮助我!

1 个答案:

答案 0 :(得分:0)

过去几天我一直疯狂地搜索谷歌寻找答案,但找不到答案。这是非常令人沮丧的,不一定是因为虫本身,但是因为有这么多人拥有它,但实际答案却很少。

错误似乎是一个权限问题。如果您从iOS 6登录,然后从Facebook删除该应用程序,设备仍会认为您已授予应用程序授权,从而返回错误。我能找到的最佳答案是here

今天,在我再次在设备上加载应用程序之后,没有首先尝试使用模拟器,它就像一个魅力。如果您遇到同样的问题,我的建议是暂时处理其他代码并在第二天再试一次。这不是完美的解决方案,我认为Apple / Facebook应该尝试解决这个问题,但它确实有效。