我有一个应用程序已经安装了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

10-01 01:18