使用UrbanAirship将推送通过GCM发送至Android应用设置

时间:2014-11-07 23:10:05

标签: android push google-cloud-messaging urbanairship.com

我有一个已经使用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实施的应用程序发送推送时,它将无法交付。

1 个答案:

答案 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