javascript - Node.js 中的 GCM 请求出现 401

标签 javascript android node.js google-cloud-messaging

我正在尝试在我的应用程序后端设置 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 开发者控制台

API 管理器 > 凭据 > API key Google developers console API Manager > Credentials > API key

API Manager > Dashboard

我错过了什么吗?

你知道为什么我的请求未经授权吗?

最佳答案

由于您使用 NodeJS 作为 Web 服务器,因此请使用 IP 地址 API key 类型而不是 None。

关于javascript - Node.js 中的 GCM 请求出现 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414962/

相关文章:

javascript - jQuery Highcharts 不适用于 JSF 2.0

javascript - 如何在 Microsoft Visual Studio Express 2012 for Web 中将文件夹添加到项目中?

android - 限制 EditText 在 Android 中只接受 Urls

java - 使用类的构造函数创建的 ArrayList 可以保存到 SharedPreferences 中吗?

javascript - 使用 mongoose 查询测试快速路由

javascript - FilePicker - 单击框外会丢失所有上传

javascript - 访问被拒绝 contentWindow iframe IE9

android - 如何让 Intellij 将我的安卓从空闲状态唤醒?

node.js - npm如何处理锁文件

javascript - Socket IO 检测客户端何时失去连接