我遇到了Node应用程序向Google Cloud Messaging发送邮件的问题。我已经创建了API密钥(服务器和浏览器),我已经在服务器密钥服务器IP和代码中列入白名单
var headers = [
'Content-Type: application/json',
'Authorization: key=' + apiKey
];
curl("https://android.googleapis.com/gcm/send", {
HTTPHEADER: headers,
POST: true,
POSTFIELDS: JSON.stringify({
data: {
type: 'xxx',
city: 'xxx',
url: 'xxx'
},
registration_ids: [phoneId]
})
}, function () {
console.log(arguments);
});
我正在尝试向Android设备发送简单通知。不幸的是,我收到 401 Unauthorized 错误。我使用node-curl
库,之前我尝试了node-gcm
和node-gcm-service
- 两者都有相同的结果。有没有可能我错过了?
先谢谢你的帮助, 的Dawid。
答案 0 :(得分:2)
当使用节点js发送推送通知时,我们可以使用以下代码
var gcm = require('node-gcm'),
gcm_message = new gcm.Message(),
sender = new gcm.Sender(GCM_API_KEY),
RETRY_COUNT = 4;
gcm_message.addDataWithKeyValue('key1', message);
gcm_message.delayWhileIdle = true;
sender.send(gcm_message, registrationIds, RETRY_COUNT, function(err, result) {
callback(err, result);
});
答案 1 :(得分:1)
我认为您使用的是不正确的API密钥,这就是您失败的原因。您必须使用Google云端控制台的API服务器密钥。
答案 2 :(得分:0)
你必须在php中使用连接运算符来将值附加到键
'Authorization: key=' . $apiKey
答案 3 :(得分:0)
我遇到了同样的问题。 "错误401"之所以发生,是因为我忘了在Google Developers Console中启用API - Google Cloud Messaging for Android。启用它后工作。希望它可以帮到你。