3

所以我正在尝试使用 php 通过 GCM 向 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

4 回答 4

1

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

从Google oauthplayground 网站发送适用于 Chrome 的 Google Cloud 消息会为我返回以下内容:

HTTP/1.1 500 内部服务器错误内容长度:52 X-xss-protection:1;mode=block X-content-type-options:nosniff X-google-cache-control:remote-fetch -content-encoding:gzip 服务器:GSE 原因:内部服务器错误通过:HTTP/1.1 GWA 缓存控制:私有,最大-age=0 日期:2013 年 5 月 15 日星期三 07:01:40 GMT X-frame-options: SAMEORIGIN Content-type: application/json; charset=UTF-8 过期时间:格林威治标准时间 2013 年 5 月 15 日星期三 07:01:40 { "error": { "code": 500, "message": null } }

根据Google 的 Cloud Message for Chrome 文档

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

从本质上讲,谷歌方面出了点问题。考虑到 Google I/O 将在几个小时后开始,我假设他们目前正在进行一些更改。

请在几个小时后再次尝试检查。

于 2013-05-15T07:10:48.847 回答
0

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

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

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

于 2013-05-21T23:01:45.100 回答
0

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

于 2013-05-31T04:30:31.120 回答
0

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

我在 Chromium Apps 组中找到了一个问题跟踪器

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

于 2013-05-20T18:01:48.937 回答