Urban Airship将通知推送到多个设备 - 它是否有效?

时间:2013-08-02 22:58:06

标签: batch-file push urbanairship.com

我有一个应用程序需要使用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"
}

1 个答案:

答案 0 :(得分: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节点中传递有助于深入链接到应用程序的值。