我需要使用 Python 向 Slack 通道发送消息。
我的 Google 搜索(这里)和 Stack Overflow 上的搜索(这里)几乎没有什么帮助。让它发挥作用的正确方法是什么?
我找到的最接近的指南来自 Slack 官方指南这里,但不清楚如何使用
SLACK_BOT_TOKEN
进行身份验证以调用 client.chat_postMessage()
from slack_sdk import WebClient
client = WebClient(token=os.environ.get("SLACK_BOT_TOKEN"))
result = client.chat_postMessage(
channel=channel_id,
text="Hello world!"
)
简而言之
创建 Slack 应用程序,又名 myslackchat ref
将范围
chat:write
授予 Slack 应用程序 ref
获取 Slack 频道 id 又名
channel id
获取 Slack 应用程序的
SLACK_BOT_TOKEN
将 Slack 应用程序
myslackchat
添加到您的 Slack 工作区,然后第二步,将 myslackchat
添加到 Slack 频道 channel id
向
channel id
发送消息的 python 代码,使用 SLACK_BOT_TOKEN
ref
附注
如何获得
经过几天的寻找 Slack 文档后,这里是相关的 guide;请搜索页面以到达此部分
OAuth Tokens for Your Workspace
- 这很痛苦。我不知道为什么本指南中没有提到 SLACK_BOT_TOKEN。
完整详情:
开始之前您需要的一件事是 Slack 应用程序。如果您还没有,这里有一个非常快速指南来帮助您创建一个。
请求必要的权限
chat:write
。此权限授予您的应用程序本身发送消息的权限(应用程序可以作为用户或机器人用户发送消息)
请求这些权限很简单:
OAuth & Permissions
功能。我认为乔恩试图说的是你必须在操作系统环境中定义令牌。这涉及以管理员身份进入命令提示符并设置您希望与令牌关联的值,即名称 (my_token_name) = 机器人令牌值本身。下面的例子:
c:\set my_token_name = xobx-blah-blah-blah-token-value
这将暂时为您提供对所述令牌 API 功能的访问权限。如果你想要更永久的东西,比如说你将长期使用这个密钥,你可以将它输入到你的 Windows 环境中,如下所示:
右键单击桌面上或文件资源管理器中的“此电脑”或“计算机”。
单击“属性”>“高级系统设置”。
在“高级”选项卡下,单击“环境变量”。
在“系统变量”下,单击“新建”。输入 YOUR_SLACK_TOKEN 作为名称,输入您的实际 Slack 令牌(机器人或用户身份验证令牌)作为值。
单击“确定”并重新启动任何命令提示符或 IDE。
然后尝试重新运行您的 python 代码,记下调用新名称来替换您的实际令牌值!
我希望这可以帮助那些努力让 python 与 slack 进行通信的人。