针对Chrome错误500的Google Cloud Messaging

时间:2013-05-14 14:21:37

标签: php google-chrome cloud messaging google-cloud-messaging

所以我试图通过GCM使用php向Chrome扩展程序发送消息。

$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}}。 感谢。

4 个答案:

答案 0 :(得分:1)

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

Google oauthplayground website发送适用于Chrome的Google云消息会为我返回:

  

HTTP / 1.1 500内部服务器错误   内容长度:52   X-xss-protection:1;模式=块   X-content-type-options:nosniff   X-google-cache-control:远程抓取   -content-encoding:gzip   服务器:GSE   原因:内部服务器错误   通过:HTTP / 1.1 GWA   缓存控制:private,max-age = 0   日期:2013年5月15日星期三07:01:40 GMT   X-frame-options:SAMEORIGIN   内容类型:application / json;字符集= UTF-8   到期日:2013年5月15日星期三07:01:40 GMT   {    “错误”:{     “代码”:500,     “message”:null    }   }

根据Google's Cloud Message for Chrome docs

  

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

从根本上说,谷歌的一面有些不对劲。考虑到Google I / O将在几个小时后开始,我认为他们目前正在进行一些更改。

请在几小时后再次检查。

答案 1 :(得分:0)

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

我在Chromium Apps小组上找到了问题跟踪器

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

答案 2 :(得分:0)

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

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

现在,一旦您发布了某个版本的应用,就可以将Web Store生成的魔术令牌添加到本地应用的清单中,并继续在本地修改/重新加载/调试,现在让您的应用正确注册GCM。有关详细信息,请参阅我的回答in chromium-apps group

答案 3 :(得分:0)

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