gpt4 book ai didi

javascript - 如何使用 chat.postmessage 作为工作区用户发布松弛消息?

转载 作者:行者123 更新时间:2023-12-02 23:30:38 36 4
gpt4 key购买 nike

我创建了一个 Slack 机器人,它有一些交互式按钮。单击按钮后,我将向单击交互按钮的用户发布一条直接消息。我需要显示用户个人资料而不是机器人个人资料图像。为了发布消息,我正在使用 slack api 聊天。发布消息()。

当我调用此方法时,消息将作为机器人用户发布(它显示机器人用户图标)。但我需要以单击此按钮的用户身份发布此消息。我检查了 as_user: false 属性来执行此操作。但没用?我正在使用我的应用程序身份验证 token 来调用此方法。

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);
});
}

那么有没有办法专门为与按钮动态交互的用户生成 token 并使用该 token 来调用此方法?它会解决这个问题还是有其他方法?我在安装应用程序时添加了所有相关权限,例如 chat:write:user

最佳答案

如果您需要以单击按钮的用户身份发布回复消息,您的应用需要使用该用户的 token 调用 API 方法来发布消息。这是应用程序在 Slack 上模拟用户的唯一方法。

因此,要在您的工作区中实现此功能,您需要要求每个用户安装一次您的应用程序,并在 Ouath 2.0 安装过程中为后续用户收集他们的 token 。

这种方法有一些明显的安全问题需要考虑,例如您的应用程序将可以访问工作区中每个用户的每条消息。

解决方法是手动设置应用发送的消息的用户名和图标(通过相应地设置 icon_urlusername 以及 as_user = false 调用 chat.postMessage 时)。您可以从 users.info 检索图标和用户名。不过,消息仍将带有 APP 标签,以将其标记为来自机器人。

关于javascript - 如何使用 chat.postmessage 作为工作区用户发布松弛消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56523552/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com