2

我正在开发一个 iPhone 应用程序,其中一部分依赖于 Facebook 集成。我从网站下载了 3.1 版的 SDK 并按照第一个教程,在此链接中找到:Authenticate

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

虽然登录工作正常,但按照此处的步骤请求基本用户信息时,应用程序会出现以下错误:

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 上。

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

4

1 回答 1

0

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

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

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

于 2013-01-02T11:56:29.723 回答