Android推送消息(GCM)返回InvalidRegistration错误

时间:2014-12-12 19:40:35

标签: android push-notification google-cloud-messaging

我们正在将Android推送消息的Urban Airship转移到GCM(Urban Airship也使用)。我们发现所有推送尝试都会返回错误:

"success":0,
"failure":1,
"canonical_ids":0,
"results":[{"error":"InvalidRegistration"}]}

我们正在使用Urban Airship正在使用的App ID(来自Google控制台)以及与Urban Airship配合使用的设备令牌。

我们注意到应用程序中的令牌很短 - 大约40个字符 - 但我们已经读过GCM令牌超过100个字符。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

城市飞艇设备令牌是一种虚拟的城市飞艇结构。在Urban Airship之外,它们与任何东西都不相关。 Urban Airship存储其设备令牌与其服务器上的实际GCM注册ID之间的关联。如果您想远离Urban,您需要:

  1. 让他们为您导出所有GCM注册ID
  2. 尝试通过CSV导出功能自行导出
  3. 对于您(似乎)拥有的每个设备令牌,请调用其APID API以获取GCM ID:http://docs.urbanairship.com/api/ua.html#get--api-apids-(APID)
  4. 否则您必须让新版本的应用重新注册GCM,显而易见的回退是那些在升级后不会升级和/或打开您的应用的休眠用户将无法重新注册注册,除非你用BOOT_COMPLETED BroadcastReceiver;)
  5. 做一些诡计