我正在尝试使用其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
结尾的范围吗?还是我在这里想念什么?
首先,在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": []
}
希望它对您有帮助。