google-apps-script - Apps Script Bot 上的 404 截断服务器响应
问题描述
我正在尝试为每天运行一个功能并发送消息的环聊聊天机器人工作。我从 Google Developers 网站上的模板开始,但在获取 URL 时收到 404 截断服务器响应错误。
错误:
Truncated server response: <h1>Not Found</h1> <h2>Error 404</h2>
这是代码:
function onTrigger() {
var spaceIds = PropertiesService.getScriptProperties()
.getKeys();
var message = { 'text': 'Hi! It\'s now ' + (new Date()) };
for (var i = 0; i < spaceIds.length; ++i) {
postMessage(spaceIds[i], message);
}
}
var SCOPE = 'https://www.googleapis.com/auth/chat.bot';
// The values below are copied from the JSON file downloaded upon
// service account creation.
var SERVICE_ACCOUNT_PRIVATE_KEY = "-----BEGIN PRIVATE KEY---- bla bla bla---END PRIVATE KEY-----\n";
var SERVICE_ACCOUNT_EMAIL = "blablabla";
//key and email deleted here for safety reasons.
// Posts a message into the given space ID via the API, using
// service account authentication.
function postMessage(spaceId, message) {
var service = OAuth2.createService('chat')
.setTokenUrl('https://accounts.google.com/o/oauth2/token')
.setPrivateKey(SERVICE_ACCOUNT_PRIVATE_KEY)
.setClientId(SERVICE_ACCOUNT_EMAIL)
.setPropertyStore(PropertiesService.getUserProperties())
.setScope(SCOPE);
if (!service.hasAccess()) {
Logger.log('Authentication error: %s', service.getLastError());
return;
}
var url = 'https://chat.googleapis.com/v1/' + spaceId + '/messages';
UrlFetchApp.fetch(url, {
method: 'post',
headers: { 'Authorization': 'Bearer ' + service.getAccessToken() },
contentType: 'application/json',
payload: JSON.stringify(message),
});event.type == "ADDED_TO_SPACE"
}
任何帮助将不胜感激。
提前致谢。马科斯
解决方案
回答:
在空间中创建消息的 URL 需要以空间 ID的形式spaces/*
提供。*
使固定:
您需要根据文档更改您的 URL:
var url = 'https://chat.googleapis.com/v1/space/' + spaceId + '/messages';
参考:
推荐阅读
- css - Flexbox:使用超过 2 个边
- python - 如何在 Python 请求上轮换代理
- python - 像这样将字节转换为: (b'\xe4\x06-\x95\xf5!P4' ) 到 python 中的零和一的二进制字符串
- node.js - 我需要一个一个地安装依赖项吗?(如果是这样,为什么?)
- c# - 当输入是原始Json时,C#如何让大摇大摆地工作?
- java - 为什么此代码会在 * 和 + 运算符上引发 invalidAssignmentOperator 错误?
- firebase - Flutter中的Firebase clod消息传递:单击通知时打开特定路由(获取上下文)
- image-processing - 如何使用 Python 显示数字高程模型 (DEM) (.raw)?
- django - 遍历查询集并比较查询集
- c# - 实例化预制件的问题。ArgumentException:已添加具有相同键的项目