【问题标题】:How to update DB table from gcm server response如何从 gcm 服务器响应更新数据库表
【发布时间】:2016-05-23 12:05:26
【问题描述】:

我的应用发送推送成功。以下是详细信息。我正在为设备令牌 ID 和状态字段维护一个数据库表。 现在寻找失败 id 以在表中设置状态 0。所以下次我只能获取状态 1 的 ID。

请帮助我如何阅读以下消息以实现上述目的。

{
  "multicast_id": 9000754561212282225,
  "success": 625,
  "failure": 375,
  "canonical_ids": 0,
  "results": [
    {
      "error": "NotRegistered"
    },
    {
      "message_id": "0:1463996561713000%2b8e613cf9fd7ecd"
    },
    {
      "message_id": "0:1463996561711827%2b8e613cf9fd7ecd"
    },
    {
      "message_id": "0:1463996561712955%2b8e613cf9fd7ecd"
    },
    {
      "message_id": "0:1463996561713911%2b8e613cf9fd7ecd"
    },
    {
      "error": "NotRegistered"
    },
........
    {
      "message_id": "0:1463996561713114%2b8e613cf9fd7ecd"
    },  
   {
      "message_id": "0:1463996561889865%2b8e613cf9fd7ecd"
    }
  ]
}

【问题讨论】:

    标签: google-cloud-messaging push


    【解决方案1】:

    来自documentation的结果是:

    表示已处理消息状态的对象数组。 对象以与请求相同的顺序列出(即,对于 请求中的每个注册 ID,其结果都列在同一个 响应中的索引)。

    因此,不是 message_id 的每个项目都代表一条失败的消息,因此不应使用相应的令牌,在您的情况下标记为 0。

    【讨论】:

    • 感谢您的回复。是他们读取以下返回字符串“message_id”的任何方式:“0:1463996561713114%2b8e613cf9fd7ecd”。我的意思是返回字符串和注册 ID 之间有什么关系吗?
    • 是的,有关系。当您使用 registration_ids 时,响应的顺序与提交的顺序相同。因此,如果 "message_id": "0:1463996561713114%2b8e613cf9fd7ecd" 是响应中的第 3 项,则它对应于请求中的第 3 个注册 ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    相关资源
    最近更新 更多