我正在尝试在我的应用程序后端设置 GCM 消息传递。
后端使用 Node.js 运行
这是我正在使用的代码:
var apiKey = "AIz*******";
var postData = JSON.stringify({
"notification": {
"title": "Hello World"
}
});
var options = {
host: 'android.googleapis.com',
port: 443,
path: '/gcm/send',
method: 'POST',
headers: {
'Authorization': 'key=' + apiKey,
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(postData)
}
};
var rqst = https.request(options, (response) => {
var responseBody = '';
response.setEncoding('utf8');
response.on('data', (chunk) => {
responseBody += chunk;
});
response.on('end', () => {
res.send(responseBody)
});
});
rqst.on('error', (e) => {
console.log('problem with request: ${e.message}');
});
rqst.write(postData);
rqst.end();
但我总是收到 401 答复:
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
我使用的 API key 取自 Google 开发者控制台
我错过了什么吗?
你知道为什么我的请求未经授权吗?
最佳答案
由于您使用 NodeJS 作为 Web 服务器,因此请使用 IP 地址 API key 类型而不是 None。
关于javascript - Node.js 中的 GCM 请求出现 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414962/