我有一个已经使用UrbanAirship设置并能够接收推送的应用程序。我想知道我是否也可以通过UrbanAirship使用的Google Cloud Message系统直接发送到设备?
您可以使用UrbanAirship API检索与设备的APID关联的GCM注册ID。
以下是GET APID调用从Urban API返回的示例响应:
{
"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"
]
}
如果我在具有IntentService和BroadcastReceiver的设备上使用我自己的GCM实现,那么这篇文章将会有效。但每当我尝试使用它来向UrbanAirship实施的应用程序发送推送时,它将无法交付。
答案 0 :(得分:3)
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。