firebase - 如何获取 Google Apps 脚本到 Firebase Cloud Messaging HTTP v1 API 的权限/范围?
问题描述
我正在尝试从 Google Apps 脚本发送 Firebase Cloud 消息。我遵循了以下问题和链接并组装了以下代码:
使用“新”Firebase 云消息传递 API 获得 403 响应
该res
| error
我收到的是:
{
"error": {
"code": 403,
"message": "Request had insufficient authentication scopes.",
"status": "PERMISSION_DENIED"
}
}
我在 Google Apps 脚本中的代码是:
function sendFCM(text){
text = {
"message": {
"topic": "news",
"notification": {
"title": "Breaking News",
"body": "New news story available."
},
"data": {
"story_id": "story_12345"
}
}
}
var projectId = "xxxxxxx";
var apiUrl = "https://fcm.googleapis.com/v1/projects/"+projectId+"/messages:send";
var authKey = "AAAU.......Cs";
var token = ScriptApp.getOAuthToken();
var options = {
'method' : 'post',
'contentType': 'application/json',
'muteHttpExceptions' : true,
'payload' : JSON.stringify(text),
headers:{Authorization: "Bearer "+ token},
};
var res = UrlFetchApp.fetch(apiUrl, options);
Logger.log(res);
}
脚本的属性 > 用户范围列表如下:
https://www.googleapis.com/auth/firebase.database
https://www.googleapis.com/auth/script.external_request
https://www.googleapis.com/auth/spreadsheets
https://www.googleapis.com/auth/userinfo.email
FCM & GCM Api 在项目的开发者控制台中启用。
编辑:
根据Ref的评论,我在应用清单中添加了以下范围:
https://www.googleapis.com/auth/firebase.messaging
运行时,它要求我授权,现在它response
是消息的一个实例。但我仍然不知道如何定义to
设备,即消息应该发送到哪个设备。
{
"name": "projects/send-xxxx3/messages/866xxxxx92"
}
解决方案
推荐阅读
- azure-pipelines - 在天蓝色管道发布期间更新 SSAS 表格连接字符串
- reactjs - 在 react ERROR (2322) 中创建 Tab 时出现问题
- json - Json 到 pandas 数据框稍作修改
- java - 带有 maven 3.2.5 的错误协议版本 Java 6
- reactjs - 有没有办法定位一个在 React 中动态添加到页面的元素?
- javascript - 这个 javascript 对象解构是如何工作的?
- php - Laravel 错误:[Symfony\Component\Process\Exception\RuntimeException] 进程已收到信号“4”的信号
- reactjs - 如何在 react-native 中使用 svg 图像作为背景图像?
- google-tag-manager - Google 跟踪代码管理器变量作为 [Object object] 传递
- c++ - 文件的 ACE 数量 - 文件属性的安全选项卡中只有 9 个成员,但它从 ACL 返回 13 个 ACE