404在Apps脚本Bot上截断了服务器响应

时间:2020-01-18 07:45:54

标签: google-apps-script oauth-2.0 bots hangouts-chat hangouts-api

我正在尝试使用环聊聊天机器人,该机器人每天运行一个功能并发送一条消息。我从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"
}

任何帮助将不胜感激。

先谢谢了。 马可斯

1 个答案:

答案 0 :(得分:1)

答案:

用于在空间中创建消息的URL需要以spaces/*的形式提供,其中*是空间ID。

修复:

您需要根据文档更改网址:

var url = 'https://chat.googleapis.com/v1/space/' + spaceId + '/messages';

参考文献:

相关问题