使用 Facebook JavaScript SDK 时 SPDY 出现 Chromium 错误

Posted

技术标签:

【中文标题】使用 Facebook JavaScript SDK 时 SPDY 出现 Chromium 错误【英文标题】:Chromium error with SPDY when using Facebook JavaScript SDK 【发布时间】:2013-02-11 20:22:01 【问题描述】:

我使用适用于 iosandroid 的 Facebook javascript SDK 开发了一个带有 html5 + Cordova (Phonegap) 的移动应用程序。 我是这样实现的:

FB.api(

    method: 'fql.query',
    query: 'SELECT uid, name, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())'
,
function(response) 
        console.log(response);
        // some code
);

它在 Android 和 iO 上运行了几个月,直到昨天才在 Android 上运行。 api调用在做,回调函数没有被调用的时候报错。

这是 Eclipse 中 LogCat 的错误:

02-26 12:27:10.526: 含铬 (22379): 外部/铬/网络/spdy/spdy_session.cc:1246: [0226/122710:WARNING:spdy_session.cc(1246)] 无法解析 Spdy 控制帧头。 02-26 12:27:10.526:D/铬(22379):未知 铬错误:-337 02-26 12:27:10.526:W/铬(22379): 外部/铬/net/spdy/spdy_session.cc:1058: [0226/122710:WARNING:spdy_session.cc(1058)] 接收到的数据帧 无效流 1 02-26 12:27:10.526: W/chromium(22379): 外部/铬/net/spdy/spdy_session.cc:1058: [0226/122710:WARNING:spdy_session.cc(1058)] 接收到的数据帧 无效流 1

似乎是安卓浏览器Chromium调用查询Facebook时出错(使用spdy协议)

有人有想法吗?

谢谢!

【问题讨论】:

【参考方案1】:

看到同样的东西!

/chromium(1942): external/chromium/net/spdy/spdy_session.cc:1246: [0307/015242:WARNING:spdy_session.cc(1246)] 无法解析 Spdy 控制帧头。 W/chromium(1942):external/chromium/net/spdy/spdy_session.cc:1058: [0307/015242:WARNING:spdy_session.cc(1058)] 接收到无效流 21 的数据帧 W/chromium(1942):external/chromium/net/spdy/spdy_session.cc:1058: [0307/015242:WARNING:spdy_session.cc(1058)] 接收到无效流 21 的数据帧 D/铬(1942):未知铬错误:-337

在没有太多消息的情况下找到了关于 FB 实现 SPDY 的消息: http://zoompf.com/2013/03/facebook-adds-spdy-support

很惊讶我们没有发现更多问题。

【讨论】:

【参考方案2】:
    我在相同的类似代码下也有同样的问题 情况,PhoneGap,Android

    解决办法是切换到Graph API。使用 Graphi API 将进行相同的调用

        FB.api('/me/friends',  fields: 'id, name, gender, username' , function (response)  ... );
    

    有许多警告可能 不适用于你,但适用于我

字段名称不同。 “sex”现在是“gender”,例如 Graph API 没有 直接模拟 is_app_user 字段。如果您将其添加到列表中 字段,你会得到一个错误。有一个解决方法问 专门针对安装该应用的用户

有分页 作为回应而实施。所以响应有点结构化 不同。如果您曾经将要处理的数据传递给 您应该传递的函数不是“response”而是“response.data”,并且 关注“response.paging”,看看有没有更多的朋友要加 通过额外的调用。

【讨论】:

以上是关于使用 Facebook JavaScript SDK 时 SPDY 出现 Chromium 错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript SDK 为 Web 登录 Facebook

JavaScript登录后使用Facebook API

没有应用程序的 Facebook-javascript-sdk

连接到 Facebook 聊天的 Javascript 库

使用 Facebook Javascript SDK 获取图形数据

javascript 使用NodeJS保护Facebook Graph API调用