【发布时间】:2019-06-10 09:16:51
【问题描述】:
我创建了一个具有一些交互式按钮的 Slack 机器人。单击按钮后,我将向单击交互式按钮的用户发布直接消息。我需要显示用户配置文件而不是机器人配置文件图像。对于发布消息,我正在使用 slack api 聊天。邮件()。
当我调用此方法时,消息将作为机器人用户发布(它显示机器人用户图标)。但我需要以单击此按钮的用户身份发布此消息。我检查了 as_user: false 属性来做这件事。但它没有工作?我正在使用我的应用程序身份验证令牌来调用此方法。
var url = "https://slack.com/api/chat.postMessage";
var auth_token ='xoxb-518598944980-577890089556-0i753DBbVkigtyuhfbnmfhjn'; //Your Bot's auth token
var headers = {
"Authorization": "Bearer " + auth_token,
"Content-Type" : "application/json"
}
var body = {
channel: actionJSONPayload.channel.id,
text: "Your text goes here.",
as_user: false // Slack user or channel, where you want to send the message
}
request.post({
"url": url,
"headers": headers,
"body": JSON.stringify(body)
}, (err, response, body) => {
if (err) {
reject(err);
}
console.log("response: ", JSON.stringify(response));
console.log("body: ",body);
});
}
那么有没有办法专门为与按钮动态交互的用户生成令牌并使用该令牌调用此方法?它会解决这个问题还是有其他方法?我在安装应用程序时添加了所有相关权限,例如 chat:write:user
【问题讨论】:
-
Slack API 文档说将 as_user 设置为 true,经过身份验证的用户将显示为消息的作者,忽略为 username、icon_url 和 icon_emoji 提供的任何值。作为经过身份验证的用户发布需要客户端或更首选的聊天:写入:用户范围。但是做这件事并没有带来任何改变。这就是为什么我需要知道是否应该根据用户更改令牌。
-
请参考以下链接解决的问题stackoverflow.com/questions/34376848/…
标签: javascript node.js oauth-2.0 slack slack-api