【问题标题】:GCM send message to multiply devicesGCM 向多个设备发送消息
【发布时间】:2014-06-20 16:42:49
【问题描述】:

作为使用 GCM 接口的一部分,服务器需要使用这种格式才能将消息发送到 GCM 服务器(将数据传递给设备):

headers = { 'Content-Type' : 'application/json', 'Authorization': 'key=' + GCM_KEY }
values = { 'registration_ids': [regId], 'data': {'msg': 'helo'} }

其中:GCM_KEY 是我的服务器密钥,regId 是由“,”分隔的注册 ID 字符串。

假设用户 A 的注册 ID 为 1,用户 B 的注册 ID 为 2。

当我尝试仅向一个设备(例如用户 A)发送消息时,regId 等于字符串“1”并且消息正确传递。当我尝试仅将消息传递给用户 2 时,也会发生同样的情况。

但是当我尝试将消息发送到两个设备时,regId = '1,2',消息就不会通过(根据 GCM 文档,成功是响应包含 0 个失败和 0 个 canonical_ids,所以我得到的结果与成功的响应不同)。

有什么想法吗?

【问题讨论】:

    标签: android google-app-engine google-cloud-messaging


    【解决方案1】:

    整个payload都是JSON,所以regId数组需要是JSON数组。而不是'1,2' 使用["1","2"]

    【讨论】:

    • 但是我将 regId 放在括号 [regId] 内的值中......所以它应该就像你说的那样。或者如果我错了,你能告诉我正确的方法吗?
    • regId 是字符串或字符串数​​组。如果您将 regId 发送为[1,2],那是一个数字数组。仔细检查您发送到 GCM 的确切内容,并在 jsonlint.com 验证该 JSON。
    猜你喜欢
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多