【问题标题】:Urban Airship push notification to multiple devices - does it work?Urban Airship 向多个设备推送通知 - 是否有效?
【发布时间】:2013-08-02 22:58:05
【问题描述】:

我有一个应用程序需要使用 Urban Airship 推送通知一次向多个特定用户(但不是整个数据库)发送消息。

使用他们的 v3 /push API,可以将消息推送到单个设备,但是使用广告中的“或”语法来指定设备列表不起作用。当我将以下 JSON(但带有有效的设备令牌 :) 发送到 /push API 时,它会返回 HTTP 状态 500,因此我认为它们可能存在错误。他们在 /push/validate 的测试 API 接受相同的 JSON 并认为它没问题。

我当然可以在一个循环中多次调用 API,一次传递一个手机令牌,但效率低下,显然多设备选项是故意放在那里的。

有人让这个工作吗?

{
  "audience": {
    "or": [
      {
        "apid": "3aec0ab4-92b1-4a6f-7218-61ea5753527c"
      },
      {
        "device_token": "8957de44dc3dcc7bc2e297162bb3f33108d1f5323dcc94b97d4038dcc9896d24"
      }
    ]
  },
  "notification": {
    "alert": "foo"
  },
  "device_types": "all"
}

【问题讨论】:

  • 在这一点上,我会考虑实际与他们联系,以了解为什么这两个 API 的行为不同。

标签: batch-file push urbanairship.com


【解决方案1】:

是的,我已经完成了这项工作。我正在使用他们的 PHP 库,但生成的有效负载是

{
  "audience": {
    "or": [
      {
        "apid": "dab7e9af-fff2-4437-b6f7-299321654e20"
      },
      {
        "device_token": "10ecb5256e965151b73ea374afd3a8447258d6d057a52418736a6e26bb2f7d06"
      }
    ]
  },
  "notification": {
    "android": {
      "alert": "My App update",
      "delayWhileIdle": false,
      "extra": {
        "feedItemId": "332"
      }
    },
    "ios": {
      "alert": "My App update",
      "badge": "+1",
      "extra": {
        "feedItemId": "332"
      }
    }
  },
  "device_types": [
    "android",
    "ios"
  ]
}

注意,我已将目标设备平台明确指定为 iOS 和 Android。因此,我有两个特定的通知节点子对象,一个用于我所针对的每个平台。如果您只使用简单的通知对象,这可能不是必需的,但我希望能够传递 extra 节点中的值,这有助于深度链接到应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多