谷歌云消息浏览器错误500


Google Cloud Messaging for Chrome Error 500

所以我试图通过GCM发送消息到chrome扩展,使用php。

$data = json_encode(array(
        'channelId' => 'channel id here',
        'subchannelId' => '0',
        'payload'=>'test'
    ));
    $ch = curl_init();
    $curlConfig = array(
        CURLOPT_URL            => "https://www.googleapis.com/gcm_for_chrome/v1/messages",
        CURLOPT_POST           => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POSTFIELDS     => $data,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_HTTPHEADER     => array(
            'Authorization: Bearer ' . $access_token,
            'Content-Type: application/json'
        )
    );
    curl_setopt_array($ch, $curlConfig);
    $result = curl_exec($ch);

每个请求返回{"error": {"code": 500, "message": null}}。谢谢。

500是内部错误的HTTP错误码。

从Google oauthplayground网站发送Google Cloud Message for Chrome为我返回这个:

HTTP/1.1 500内部服务器错误内容长度:52X-xss-protection: 1;模式=块X-content-type-options: nosniffX-google-cache-control: remote-fetch内容编码:gzip服务器:GSE原因:服务器内部错误通过:HTTP/1.1 GWACache-control: private, max-age=0日期:2013年5月15日(星期三)07:01:40 GMTX-frame-options: SAMEORIGIN内容类型:application/json;utf - 8字符集=截止日期:2013年5月15日星期三07:01:40 GMT{"错误":{"代码":500年,"消息":null}}

根据Google的Cloud Message for Chrome docs:

发生内部错误。这表明Google服务器端出了问题(例如,某些后端不工作或HTTP post中的错误,例如缺少访问令牌)。

本质上是谷歌这边出了问题。考虑到谷歌I/O将在几个小时内开始,我认为他们目前正在做一些改变。

过几个小时再检查一下。

我今天遇到了同样的问题。

我在Chromium Apps组中发现了一个问题跟踪器

https://groups.google.com/a/chromium.org/forum/?fromgroups= !主题/chromium-apps UXE_ASCN0gc

其中一个可能的原因是你用于测试的应用从未在Chrome Web Store中发布过。因此,如果你在本地创建了一个应用程序,并将其加载到Chrome中进行测试,例如,它总是会失败,因为GCM不知道谁拥有该应用程序。当将应用程序发布到商店时,使用与Api控制台中使用的相同的google帐户创建项目和Oauth clientId/client secret等。Chrome的GCM只有在这些google帐户匹配时才有效。

GCM验证应用的所有者与访问令牌的所有者匹配,以确保除了应用的所有者之外没有人为它发布消息。在Web Store中发布应用程序会在google帐户和appID之间创建一个链接,以便进行验证。

现在,一旦你发布了某个版本的应用程序,你就可以将Web Store生成的魔法令牌添加到本地应用程序的清单中,并继续在本地修改/重新加载/调试,现在你的应用程序已经正确地注册了GCM。

我也得到了同样的错误。我通过打包我的应用程序并上传到chrome webstore来解决这个问题。然后我使用新的通道ID,它现在可以工作了