问题标签 [chrome-gcm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
485 浏览

google-chrome-extension - Chrome 的 Google Cloud Messaging 每个设备的 channelId 是唯一的吗?

假设我在两台计算机上安装了我的扩展程序,并且我都使用同一个谷歌帐户登录。

chrome.pushMessaging.getChannelId 会为两台计算机返回相同的值吗?有没有办法要求每个单独的安装都有自己的频道?我在任何地方都找不到这些信息。

这个问题是在 Stack Overflow https://stackoverflow.com/questions/13235810/google-cloud-messaging-and-identity上提出的,但没有给出答案。

据我观察,频道 ID 对用户帐户是唯一的,而不是对安装唯一的。但我不确定这是否是预期的行为,或者我可以指望这种情况总是如此。

0 投票
1 回答
798 浏览

google-chrome - 如何从远程服务器上的 Google Cloud Messaging 获取 OAuth 访问令牌

我有一个关于 Google Chrome 扩展的 OAuth 访问令牌检索的一般理解问题。

我在浏览器中有一个弹出 HTML 窗口,它使用 Jquery 从服务器(AWS 上的 LAMP 堆栈)请求数据。数据由访问 MySQL 数据库的 PHP 脚本呈现。所有非常基本的东西。

我现在想使用 Google Cloud Messaging 实现一个推送消息系统,以提醒用户他们可以检查的新内容。但是我真的不明白我应该在哪里请求访问令牌以及如何监听响应。我认为它应该在 PHP 脚本中,但我读过的所有 Google 文档都指出用户必须在场才能允许访问推送消息。这告诉我我应该把它放在 JavaScript 中,但我觉得这是一个坏主意,因为当我认为我每 3000 秒左右只需要一个访问令牌时,每个用户都可能请求访问令牌。如果我的应用程序完全用 PHP 实现,我相信这是可能的,现在我担心像这样拆分它会使推送消息成为问题。我错过了一个重要的细节还是只是运气不好?

0 投票
2 回答
957 浏览

google-chrome-app - 当后台页面处于非活动状态时,Chrome App pushMessaging 不起作用

清单.json:

背景.js:

这就是整个应用程序。没有 HTML 页面(没有创建窗口),也没有其他 JavaScript。

当后台页面处于活动状态时,该应用程序运行正常,并且我在屏幕右上角看到弹出通知消息。(未显示的是我临时使用的一些代码,用于显示我的服务器使用的频道 ID。服务器是一个 PHP 程序,它使用 Google Cloud Messaging for Chrome 服务。看起来没问题。)

但是,如果我在几秒钟内什么都不做,该应用程序将变为非活动状态。在 Chrome 的 Extensions 页面上,该行:

更改为:

然后,当发送消息时,该行更改为活动状态(“背景页面”,没有“(非活动)”部分,表示在某种意义上已收到消息。但是,通知代码不会导致弹出窗口.

我无法确定日志记录出了什么问题,因为当 JavaScript 控制台打开时,应用程序保持活动状态,然后运行。

问题:根据扩展页面上的状态指示,当消息到达时,我的应用程序似乎被唤醒,但它不工作。有谁知道为什么?

错误归档:进行了更多测试,包括使用稳定(非测试版)版本的 Chrome。在 OS X、Chrome OS 和 Windows 上试过。一样。这是我提出的问题:https ://code.google.com/p/chromium/issues/detail?id=316315

0 投票
0 回答
128 浏览

google-chrome-app - 尝试从 Google API 控制台启用 Google Cloud Messaging for Chrome 时看到错误 500

在 Google API 控制台中,当我尝试为 Chrome API 启用 Google Cloud Messaging 时,我在 javascript 控制台中看到 500 错误:

POST https://cloud.google.com/console/m/api/apilist/682126721867?xsrf=aBdPrU16rlpKR6KsWi-IrXjPQe4:1387559908732 500 (Internal Server Error)

谷歌:如何启用此功能?!

0 投票
1 回答
782 浏览

android - Android 应用程序和 Chrome 扩展程序之间的消息传递

我希望使用 Google Cloud Messaging 在 Android 应用程序和 Google Chrome 扩展程序之间发送消息。基本过程是:

Android 应用程序将使用 Google 身份验证,Chrome 扩展程序当然会要求用户登录。

如果没有中间服务器,这可能吗?我已经进行了一些初步研究,但大部分文档似乎都集中在 Chrome <> Server 或 Android <> Server 之间使用 GCM,而不是 Chrome <> Android 之间。

谢谢。

0 投票
0 回答
127 浏览

google-chrome - 适用于 Chrome 的 Google Cloud Messaging - 多条消息

我目前正在开发一个使用 Chrome 提供的 chrome.pushMessaging API 的 Chrome 扩展。

我在扩展的后台页面注册推送消息回调:

问题是 pushMessageReceivedCallback 立即被发送到扩展通道 ID 的最后四条消息击中。这种行为在我使用的计算机上似乎相同。

如果使用 GCM 消息,有什么方法吗?一旦我看到该消息一次,我不希望它在每次加载扩展程序时一直到达。

谢谢。

0 投票
1 回答
248 浏览

android - 是否可以使用 GCM 流式传输数据?

我想构建一个 Android 应用程序,将数据从无线传感器(大约 3 kb/s)流式传输到我的服务器。

要唤醒手机,我发现我不能轻易地使用服务器上的套接字,但需要 GCM 推送通知。但是,如果我实现所有 GCM 的东西只是为了开始流式传输,那么将 GCM 用于数据流也可能更容易,而不是我自己的 websocket 实现。

文档说一个数据包最大为 4 kb,如果设备每秒可以可靠地传输一次,这就足够了。但是由于 GCM 不是为如此快速的间隔和带宽而设计的,有没有人有经验,如果它是可行和可靠的,还是直接打开到我的服务器的连接会更好?

0 投票
0 回答
464 浏览

google-chrome-extension - 将 chrome 扩展通道 ID 发送到 Web 应用程序的最佳方法

我正在编写一个 chrome 扩展程序,它将接收来自我的应用程序的消息。我已经设法编写代码来检索我的扩展程序中的推送消息通道 ID。现在我需要将此频道 ID 发送到我的应用程序并将其链接到一个帐户,以便我知道此频道 ID 属于哪个用户。

我一直在考虑最好的方法来做到这一点。到目前为止,我确信我应该将 GET 请求中的频道 ID 发送到我的应用程序,然后要求用户通过 OAuth 登录,这样我就可以获得他们的电子邮件地址并且我知道他们是谁。

有没有更好的方法来实现这一点?

0 投票
0 回答
154 浏览

google-cloud-messaging - 未收到 GCM chrome 通知

我正在开发一个 chrome 扩展,到目前为止我已经成功地从我的服务器推送通知。但是,通知突然停止工作。我可以看到我的 POSThttps://www.googleapis.com/gcm_for_chrome/v1/messages得到了 204 的回答,所以它不是我的服务器代码。

我确信我没有达到每天 10k 的限制,因为否则我会看到完全不同的代码。

我有几个问题:

  1. 我可能会达到速率限制吗?
  2. 是否有可能我向谷歌服务器发送过多垃圾邮件并被阻止?
0 投票
2 回答
670 浏览

google-chrome - 适用于 Chrome 的 Google Cloud Messaging - 收到的消息未显示为弹出窗口

我下载了 Google push-sample-app code,从清单中删除了密钥,将应用程序上传到 Chrome Web Store,然后从 Web Store 将其安装到 Chrome 中。

现在chrome://extensions/将该应用程序列为“已启用”,并带有“检查视图:背景页面(非活动) ”。Chrome 任务管理器不会将该应用列为当前正在运行。

如果在chrome://extensions/选项卡上,我单击“ Push Messaging Sample”应用程序的“ background page (Inactive) ”链接,则检查视图会显示在单独的 Chrome 窗口中,并且 Chrome 任务管理器中会出现一个新条目:“后台页面:推送消息示例”。只要检查视图 Chrome 窗口打开,事件页面“background.js”就不会被卸载。并且当消息被发送到推送消息服务时,会出现一个带有消息文本的弹出窗口。

如果我关闭检查视图 Chrome 窗口,并向推送消息服务发送消息,Chrome 任务管理器会显示事件页面“background.js”被加载,然后在几秒钟内从任务管理器中消失。但是,不会出现带有消息的弹出窗口。

如何在不运行任何额外 Chrome 窗口的情况下更改此应用程序以显示弹出消息?