我正在编写一个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 错误
我可能做错了什么?
有条件的信息
答案 0 :(得分:0)
我明白了。错误信息确实具有误导性。
注册后返回的完整令牌是这样的:
dWWt-ohQFWg:APA91bFBgEU1aRyykLCw2lNat57WSePvbXyiLcCoHh6Tt6dkzXs5HUNl8C4wDL-BgaBrzJJc0lHH8IGQ3zACcfyQEdQmpKTJWOWshWKIH0e_RByg5zkhX0AlvFL4_0DLMzd_Hz1YKZ1g
出于某种原因,我只使用"之后的内容:"在这种情况下,错误是 MismatchSenderId 。我确信注册正常,因为如果我在字符串上更改了任何内容,则返回 InvalidRegistration 。但实际上应该使用整个字符串,包括"之前的部分:"