5

我跟随传入的 bot python使用 webhook 发送消息,我想使用Method:delete删除它。

但我收到错误 401,以下是错误消息。

{'error': {'code': 401,
           'message': 'Request is missing required authentication credential. '
                      'Expected OAuth 2 access token, login cookie or other '
                      'valid authentication credential. See '
                      'https://developers.google.com/identity/sign-in/web/devconsole-project.',
           'status': 'UNAUTHENTICATED'}}

Webhook 似乎使用密钥和令牌作为授权。但我无法删除具有相同 url 的消息(目标为“data-id”)。

4

2 回答 2

0

在 google hangouts 聊天中无法删除通过 Webhook 发送的消息,或者至少该功能尚未构建。

如果您通过项目的 Appscript 代码本身(不使用 Webhook,即通过spaces.messages.create)将消息发布到房间或向某人发送 DM,则可以使用此方法将其删除spaces.messages.delete(查看此处

如果您尝试使用上述方法 ( spaces.messages.delete) 删除使用 Webhook 发布的消息,则会出现以下错误

{
    "error": {
        "code": 403,
        "message": "Request had insufficient authentication scopes.",
        "status": "PERMISSION_DENIED"
    }
}

这是因为您尝试删除的消息是由 webhook 发布的,而不是通过 appscript 代码库或 using 发布的spaces.messages.create,因此生成的访问令牌无权删除该消息,因为它属于 appscript 项目而不是 webhook机器人。

希望能解决你的问题!

于 2020-11-16T07:14:50.550 回答
0

您必须已下载凭据文件。如果没有,请按照此操作

下载后,请按照以下步骤生成身份验证令牌。

  1. 设置环境变量

    导出 GOOGLE_APPLICATION_CREDENTIALS=

  2. 在您的终端上运行此命令。

    gcloud auth 应用程序默认打印访问令牌

  3. 在您的邮递员中使用生成的令牌 -> 授权 -> 键入 OAuth 2.0 -> 访问令牌或在您的标题中作为

    headers = { 'Content-Type': "application/json", 'Authorization': "Bearer", ... }

于 2020-01-23T15:16:14.310 回答