我有一个应用程序需要使用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"
}
答案 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
节点中传递有助于深入链接到应用程序的值。