【问题标题】:Push Notifications to Ionic app using GCM使用 GCM 将通知推送到 Ionic 应用程序
【发布时间】:2017-01-30 02:19:39
【问题描述】:

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

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

在“$ionicPlatform.ready”事件中,我获得了设备令牌

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 是正确的,因为如果我更改密钥,我会收到 unauthorized 错误,如果我更改注册 ID,我会收到 InvalidRegistration 错误

我做错了什么?

附加信息

  • 使用调试版本进行测试

【问题讨论】:

标签: android cordova ionic-framework push-notification


【解决方案1】:

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

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

dWWt-ohQFWg:APA91bFBgEU1aRyykLCw2lNat57WSePvbXyiLcCoHh6Tt6dkzXs5HUNl8C4wDL-BgaBrzJJc0lHH8IGQ3zACcfyQEdQmpKTJWOWshWKIH0e_RByg5zkhX0AlvFL4_0DLMzd_Hz1YKZ1g

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多