我正在尝试使用他们的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
结尾的范围?还是我在这里想念什么?
答案 0 :(得分: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": []
}
希望它对您有帮助。