我有一个应用程序已经安装了urbanairship,可以接收推送。我想知道我是否也可以通过urbanairship使用的google云消息系统直接发送推送到设备上?
您可以使用urbanairship api检索与设备的apid相关联的gcm注册id。
以下是从城市api返回的get-apid调用的响应示例:
{
"tags": [
"Tag1",
"Tag2",
"Tag3"
],
"gcm_registration_id": "APA91bHgdRCTXZ-ZRXhnZ0krk30fjhehJoR4i3z9CsjNhUUc7w2KLA2ePX3cNcJiOLnYGpl8YP53BGHydqSTY5mfnX10enzmIOUPV8qClxtecpq5gqEcIt_ZJEnblVEnz41mHdmSUyV-MY_GCM_REGISTRATION_ID",
"created": "2014-11-07 22:14:11",
"alias": "",
"apid": "df706e0f-0460-46dd-bc8f-4ac7e9dff758",
"active": true,
"last_registration": "2014-11-07 22:14:18"
}
从那时起,我尝试使用GCM注册ID直接向Google的GCM服务器发送推送,但Urbanairship从未在设备上生成通知。
我正在向https://android.googleapis.com/gcm/send发送请求:
{
"data": {
"title": "Test Title",
"message": "Test push "
},
"registration_ids": [
"APA91bHgdRCTXZ-ZRXhnZ0krk30fjhehJoR4i3z9CsjNhUUc7w2KLA2ePX3cNcJiOLnYGpl8YP53BGHydqSTY5mfnX10enzmIOUPV8qClxtecpq5gqEcIt_ZJEnblVEnz41mHdmSUyV-MY_GCM_REGISTRATION_ID"
]
}
如果我在设备上使用自己的gcm实现和一个intentservice和broadcastReceiver,这篇文章将起作用。但每次我试图用这个来向我的urbanairship应用程序发送一个push时,它都不会被交付。
最佳答案
urbanairship为主警报消息发送的参数是com.urbanairship.push.ALERT
,urbanairship android sdk常量处理的类似属性必须以类似方式实例化。
你可以把它和uniqush-push一起使用
curl http://localhost:9898/push -d "service=myapp_prod&subscriber=raffy&com.urbanairship.push.ALERT=you got an alert"
我也在研究一个ruby client。