由于从GCM发送无效令牌,推送通知失败?

时间:2017-01-13 14:13:22

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

我注意到我们的后端出现了一个问题,该问题始于10月份。准确地说是10月15日。似乎我从Android上的GCM获得无效令牌,我的后端然后存储并且也无法发送推送通知。

有一点需要注意的是,我使用了弃用的api。这可能是问题的一部分,但我无法确认。 This is the API I'm using to register users with GCM

我回来的代币有一种我不熟悉的格式。这是我的有效令牌,以APA9开头。

Valid token: APA91bFolo25yEfP2_3wUt3bPO08S3Hz1NBpJbyWkW5_hhsQ6WggOogQOXPYohmh

然而,我得到的代币看起来像这样:

Invalid token: csPVRloDPzc%3AAPA91bFFU2DOGLg3hXoOvQ9vnhN3gMA4aalBAhGGJzAqt4Jtyy

注意通常的APA9之前的额外字符。如果我删除这些额外字符,则令牌仍然无效。所以我不确定究竟是什么问题。问题是随机发生的,有时我会得到正确的代币,有时我也不会。

显然,使用弃用的API根本不理想,这将是我改变的第一件事,但是在我提到的日期之前,这个问题始于它自己,没有任何代码更改。

任何见解都会非常有用。感谢。

1 个答案:

答案 0 :(得分:1)

  

这是我的有效令牌,从APA9开始。

令牌不必以APA9开始有效。在我的数据库中,我的ID以几乎任何字母开头(但从不是数字)。

我的所有ID都有一个共同点,就是:作为第12个字符,APA9就在那之后。

你的无效'看起来像csPVRloDPzc%3AAPA91bFFU2DOGLg3hXoOvQ9vnhN3gMA4aalBAhGGJzAqt4Jtyy的令牌也有一个作为第12个字符,但它似乎是URL编码为%3A

我怀疑如果您解码它,它将突然成为有效的ID。