Slack API:无法获取Chat:Write:Bot以自定义用户名发送消息

问题描述 投票:1回答:1

我正在尝试使用其Web API将Slack与我们的应用程序集成。我需要使用带有自定义用户名的chat.postMessage终结点并设置as_user = false。我可以发布消息,但是当我设置as_user=false时不起作用。

示例:

{
    "channel" : "1234689",
    "text" : "Hello, It's me.",
    "username": "DJDEPOLO",
    "as_user" : false
}

[每次我打那个电话,我都会得到一个错误,说我错过了chat:write:bot。但我不知道如何获得该范围。我已经尽力想了一切,并且遍历了他们的文档多次。

我尝试使用OAuth路由请求范围,并且在将chat:write:bot添加到范围时,出现错误提示

请求的无效权限

示例:

https://slack.com/oauth/v2/authorize?scope=chat:write:bot&client_id=1234&redire....

似乎我需要使用用户令牌来执行此操作,但是当我请求访问令牌时,我将获得机器人令牌。

有人曾经使用过chat:write:bot或任何以:bot结尾的范围吗?还是我在这里想念什么?

slack
1个回答
0
投票

首先,在your apps for slack中选择您的应用,然后导航到“ OAuth和权限”页面。

然后,在“范围”部分中单击“更新范围”,向下滚动,按“继续”,然后将chat:write添加到用户令牌范围。然后再次向下滚动并完成该过程。

为了获得用户令牌,请在查询中添加user_scope参数而不是scope,以便其外观类似于此https://slack.com/oauth/v2/authorize?user_scope=chat:write&redirect_uri=...。当您将代码交换为访问令牌时,将会收到类似以下内容:

{
    "ok": true,
    "app_id": "A0KRD7HC3",
    "team": {
        "name": "Slack Softball Team",
        "id": "T9TK3CUKW"
    },
    "authed_user": {
        "id": "U1234",
        "scope": "chat:write",
        "access_token": "xoxp-1234",
        "token_type": "user"
    }
}

请注意authed_user.access_token,因为这是您需要在授权标头中发送的令牌。

这里是POST正文的示例:

{
    "channel": "Your channel id",
    "as_user": true,
    "text": "hi there",
    "attachments": []
}

希望它对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.