我正在研究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。:这是我的第一个问题,所以我为信息的数量(或缺乏)道歉。提前感谢您帮助我!
答案 0 :(得分:0)
过去几天我一直疯狂地搜索谷歌寻找答案,但找不到答案。这是非常令人沮丧的,不一定是因为虫本身,但是因为有这么多人拥有它,但实际答案却很少。
错误似乎是一个权限问题。如果您从iOS 6登录,然后从Facebook删除该应用程序,设备仍会认为您已授予应用程序授权,从而返回错误。我能找到的最佳答案是here。
今天,在我再次在设备上加载应用程序之后,没有首先尝试使用模拟器,它就像一个魅力。如果您遇到同样的问题,我的建议是暂时处理其他代码并在第二天再试一次。这不是完美的解决方案,我认为Apple / Facebook应该尝试解决这个问题,但它确实有效。