Google apps script 使用RESTAPI向Google聊天室发送消息(Google示例在2020年不起作用)

Google apps script 使用RESTAPI向Google聊天室发送消息(Google示例在2020年不起作用),google-apps-script,google-api,chatbot,service-accounts,hangout,Google Apps Script,Google Api,Chatbot,Service Accounts,Hangout,我从哪里开始。。。(谷歌,你为什么要这样伤害我?) 背景信息 我创建了一个新的聊天机器人,它从中的用户接收消息,并用一条消息同步响应(每条消息只能有一条来自聊天机器人的响应) 现在,我需要一种发送异步消息的方法,以便bot可以自己发送消息,或者一次发送多个单独的响应 问题 有一个方法,,但此方法(spaces.messages.create)不起作用!从2020年起,没有这种方法的工作示例。 下面是Google使用RESTAPI创建消息的示例 问题在于,在他们的示例中,范围设置为: 如果导航到该

我从哪里开始。。。(谷歌,你为什么要这样伤害我?)

背景信息

我创建了一个新的聊天机器人,它从中的用户接收消息,并用一条消息同步响应(每条消息只能有一条来自聊天机器人的响应)

现在,我需要一种发送异步消息的方法,以便bot可以自己发送消息,或者一次发送多个单独的响应

问题

有一个方法,,但此方法(
spaces.messages.create
)不起作用!从2020年起,没有这种方法的工作示例。

下面是Google使用RESTAPI创建消息的示例

问题在于,在他们的示例中,
范围
设置为:

如果导航到该URL,您将看到以下404错误:

Not Found
Error 404
此外,如果您选中,您将注意到没有与闲逛或聊天相关的作用域,也没有提到示例代码中使用的
Chat.bot
作用域

我试过什么?

我已经阅读了与此聊天API相关的StackOverflow的所有问题,以及RESTAPI的所有教程

  • Google的官方应用程序脚本教程不起作用,因为
    chat.bot
    范围已不存在:
  • 这些StackOverflow解决方案都使用相同的不存在的
    chat.bot
    范围:
  • 此StackOverflow用户表示他们能够使用
    聊天
    范围(即
    googleapis.com/auth/chat
    ),但该范围也不存在:
总之

如何使用从Google应用程序脚本向Google聊天室发送消息

谷歌的文档似乎已经过时,截至2020年8月,该API的所有示例都不起作用。他们要么不知道自己的REST API不起作用,要么在没有告诉任何人的情况下弃用了REST API。

回答: 我可以确认
chat.bot
范围确实存在。要使用REST API设置聊天机器人,您必须使用

更多信息: 根据您链接的文档,对于在触发器上发送异步消息:

…目前实现这一点的唯一方法是通过外部HTTP API(请参阅)。这需要通过使用云服务帐户(请参阅文档)

这意味着,您必须首先在GCP控制台中设置一个服务帐户,以便将
chat.bot
作用域用于这些消息。对于不感兴趣的人来说,整个过程可能相当艰巨,因此我将在这里提供从头到尾的步骤

过程: 创建服务帐户:

  • 导航到并创建新的GCP项目。点击页面顶部的
    选择项目
    ,然后单击
    新建项目
    • 您需要提供
      项目名称
      ,其他字段应自动填写
  • CREATE
    -屏幕右上角将出现一个新的弹出窗口,确认正在创建一个新项目。加载后,您可以单击查看
  • 单击
    图标位于左上角,然后单击
    api&Services>Credentials
    菜单项
  • 在此页面顶部,单击
    +创建凭据>服务帐户
    • 为服务帐户提供名称和说明,然后按
      创建
      ,然后按
      继续
      ,最后按
      完成
您的服务帐户现在已创建

创建服务帐户凭据:

示例中提供的代码需要这些脚本,这些代码来自使用应用程序开发机器人脚本页面

  • 创建服务帐户后,您将被重定向回可用于GCP项目的凭据列表。在
    服务帐户
    部分下,单击新建的服务帐户。这将被称为
    服务帐户-name@project-name-XXXXXX.iam.gserviceaccount.com
  • 单击
    addkey>createnewkey
  • 保持
    JSON
    处于选中状态,然后按
    CREATE
    • 这将启动凭据文件的下载,您需要使用该文件作为此服务帐户访问API请勿丢失或共享此文件。如果丢失,您需要删除并为此帐户创建新凭据
启用聊天室API:

  • 返回到
    ☰ > API和服务
    ,然后选择
  • 搜索
    聊天室API
    ,然后单击唯一的结果
  • 单击启用。这将为您的项目启用API
注意:不要关闭此选项卡!我们以后仍需要使用GCP控制台。

设置应用程序脚本项目:

  • 创建新的应用程序脚本项目
  • 现在,您可以将示例从页面复制并粘贴到新项目中
  • 打开从GCP控制台下载的凭据文件。
    • 复制
      private\u key
      值(以
      ----BEGIN private key-----
      开头的值),并将其粘贴到应用程序脚本项目中的
      SERVICE\u ACCOUNT\u private\u key
      的值中
    • 还要从凭据文件复制
      客户端电子邮件
      值,并将其粘贴到应用程序脚本项目中的
      服务帐户电子邮件
为了使用示例中的Google应用程序脚本OAuth2库,您需要
Not Found
Error 404
{
  "timeZone": "Europe/Paris",
  "dependencies": {
    "enabledAdvancedServices": [{
      "userSymbol": "Drive",
      "serviceId": "drive",
      "version": "v2"
    }],
    "libraries": [{
      "userSymbol": "OAuth2",
      "libraryId": "1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF",
      "version": "38"
    }]
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "chat": {
    "addToSpaceFallbackMessage": "Thank you for adding me!"
  }
}