Facebook iOS SDK 3.1:“错误:HTTP状态码:400”

我在iOS6模拟器上运行Xcode 4.5GM上的Facebook SDK 3.1。 我连接到FB的iOS设置,并成功FB连接在我的应用程序使用新的iOS6 FBConnect用户界面。 我有一个访问令牌,可以看到我的朋友,发送应用程序请求,张贴到我的墙上等。但是,每次我启动任何forms的FBURLConnection,我看到这个打印到我的控制台:

Error: HTTP status code: 400 

当我打印出这个错误时,我进入FB代码并打印出响应,并得到:

 { body = { error = { code = 100; message = "(#100) The parameter 'attribution' is required for the 'mobile_app_install' activity"; type = OAuthException; }; }; code = 400; } 

有谁知道如何解决这个问题? 所有function似乎工作,但我不断看到这个垃圾邮件我的控制台。

这个错误反映了服务器上的错误,在3.1版本发布之后不久就修复了。 在这一点上,不应该有更多的失败来自这个请求。 希望这可以帮助!

会话创build后立即执行此操作:

 [FBSession setActiveSession:session]; 

尽我所知,这是3.1 SDK中引入的一个bug。 看着Charles的networkingstream量,他们正在尝试POST到graph.facebook.com/[user id]/activities但是失败了。

经过大量的疑难解答,并看到所有关于Stackoverflow的build议,我得到了这个错误400(error.code = 5)的东西解决。 在我的情况下,解决scheme是确保params(又名postParams)包含在我的startWithGraphPath调用具有完全由所发布的内容types支持的参数。

更具体地说,我使用@“ref”键(通常用于跟踪FB Insights)发送链接给我/ feed。

删除@“ref”键后,startWithGraphPath成功。

 NSMutableDictionary *postParams = [NSMutableDictionary dictionaryWithObjectsAndKeys: @"Test NAME field (from ios app)", @"name", @"Test caption", @"caption", @"Test description", @"description", @"http://example.com/test1.html", @"link", @"http://example.com/water.jpg", @"picture", // @"foo", @"ref", // WRONG! nil]; [FBRequestConnection startWithGraphPath:@"me/feed" parameters:postParams HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) 

我的activeSession(和所有其他可能的罪魁祸首)签出确定。

这和我在这里的回答是一样的: Facebook SDK 3.1 – 错误:HTTP状态码:400

但它可以帮助人们仍然得到400错误。

Facebook刚发布3.1 SDK后,原来的问题就解决了。

但有些仍然有问题,如果你有这个问题,你应该检查loginstream程,并看看Facebook的例子,如果你仍然有问题,这可能是一个解决scheme的提示。

当我没有获得我的信息的授权时,我得到了400错误。 奇怪的是,我得到一个accessToken,甚至是一个有效的login(这是因为我构build了我的代码,根据令人愉快的示例帮助,我做了一个有效的login时,会话状态打开)。

FBSessionState只打开一秒钟,然后它变成closures400错误。

使用iOS6本机login时,您在获取权限时会收到警报,然后手机会记住24小时内的select。 但是,如果用户login到Facebook主页,然后删除该应用程序的权限,手机将记住24小时的设置,无论您是否重新安装应用程序。

我经过几个小时的debugging才发现,因为我允许从iOS设置的应用程序,但我不能发布,因为我删除了Facebook隐私的许可,警报不会再显示,我什么也没有但是要手动通过debugging工具给我权限,或等待24小时,所以我可以再次接受Facebook的许可警报。

当Facebook => Open Graph定义面板中,当定义动作types字段集中的Optional Properties出错时,我发现状态码400也会出现FBErrorHTTPError

在我的情况下,我发布了一个没有标记为isRequired的属性的操作对象。 也要注意isArray选项,一般来说,要正确匹配你发送的内容。