繁体   English   中英

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

[英]Facebook iOS SDK 3.1: “Error: HTTP status code: 400”

我正在使用iOS6模拟器在Xcode 4.5GM上运行Facebook SDK 3.1。 我在iOS设置中连接到FB,并使用新的iOS6 FBConnect UI成功在我的应用程序中进行FB连接。 我有一个访问令牌,可以看到我的朋友,发送应用程序请求,发布到我的墙上,等等。但是,每次启动任何形式的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;
}

有谁知道如何解决这个问题? 所有功能似乎都可以使用,但是我的控制台始终看到此垃圾邮件。

在创建会话后立即执行以下操作:

[FBSession setActiveSession:session];

据我所知,这是3.1 SDK中引入的错误。 查看与Charles的网络流量,他们正试图发布到graph.facebook.com/[user id]/activities但失败了。

经过大量的故障排除并查看了关于Stackoverflow的所有建议后,我解决了此错误400(error.code = 5)的问题。 在我的情况的解决方案是确保列入我startWithGraphPath调用PARAMS(又名postParams)不得不张贴正是通过内容的类型支持的PARAMS。

更具体地说,我使用@“ ref”键(通常用于FB Insights跟踪)发布指向我/提要的链接

删除@“ 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(以及所有其他可能的原因)已签出OK。

这与我从这里得到的答案相同: Facebook SDK 3.1-错误:HTTP状态代码:400

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

最初的问题已在3.1 SDK发布后由Facebook解决。

但是有些仍然存在问题,如果您遇到此问题,则应检查登录流程,并查看facebooks示例,如果仍有问题,则可能是解决方案的提示。

我无权获取我的信息时收到400错误。 奇怪的是,我获得了accessToken甚至是有效的登录名(这是因为我根据Scrumptious示例在帮助下构造了代码,并且在Session状态打开时进行了有效的登录)。

FBSessionState仅打开一秒钟,然后更改为关闭,并显示400错误。

使用iOS6本机登录,您会在需要时收到权限警报,然后电话会记住该选择24小时。 但是,如果用户登录到Facebook主页,然后删除该应用程序的权限,则无论您是否重新安装该应用程序,手机都会记住该设置24小时。

经过数小时的调试后,我发现了这一点,因为我允许从iOS的“设置”中启用该应用程序,但无法发布,并且由于我从facebook隐私中删除了该权限,并且该警报不会再次显示,我无法执行任何操作但是可以通过调试工具手动授予我权限,或者等待24小时,以便我可以再次接受Facebook权限警报。

我发现,在Facebook => Open Graph定义面板中,Define Action Type字段集中的Optional Properties出现问题时,状态代码400也会引发FBErrorHTTPError

就我而言,我正在发布一个动作对象,但没有标记为isRequired的属性。 还请注意isArray选项,并且通常要注意与发送的内容正确匹配。

此错误反映了服务器上的错误,该错误在3.1版本发布后不久已得到修复。 此时,此请求不应再有任何失败。 希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM