使用GCM将通知推送到Ionic应用程序

时间:2016-09-21 17:42:14

标签: android cordova ionic-framework push-notification

我正在编写一个Ionic应用并尝试使推送通知正常工作。

我正在使用phonegap-plugin-push插件执行此操作。

在" $ ionicPlatform.ready" event我得到设备令牌

var push = PushNotification.init({
  android: {
    senderID: "36112019308"
  }
});

push.on('registration', function(data) {
  window.localStorage.setItem('tkn', data.registrationId );
});

好吧,我在这里获得了注册ID。现在,当我尝试按照here描述的步骤时,使用如下所示的curl命令

curl --header "Authorization: key={KEY_GOT_ON_GOOGLE_CONSOLE}" --header "Content-Type: application/json" https://android.googleapis.com/gcm/send -d "{\"registration_ids\":[\"THE_REGISTRATION_ID_GOT_ON_DEVICE"]}"

我收到错误:

{"multicast_id":4787366485826638756,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}

好吧,我确信密钥和注册ID是正确的,因为如果我更改了密钥,我会收到未经授权的错误,如果我更改了注册ID,我会得到 InvalidRegistration 错误

我可能做错了什么?

有条件的信息

  • 使用调试版本进行测试

1 个答案:

答案 0 :(得分:0)

我明白了。错误信息确实具有误导性。

注册后返回的完整令牌是这样的:

dWWt-ohQFWg:APA91bFBgEU1aRyykLCw2lNat57WSePvbXyiLcCoHh6Tt6dkzXs5HUNl8C4wDL-BgaBrzJJc0lHH8IGQ3zACcfyQEdQmpKTJWOWshWKIH0e_RByg5zkhX0AlvFL4_0DLMzd_Hz1YKZ1g

出于某种原因,我只使用"之后的内容:"在这种情况下,错误是 MismatchSenderId 。我确信注册正常,因为如果我在字符串上更改了任何内容,则返回 InvalidRegistration 。但实际上应该使用整个字符串,包括"之前的部分:"