如何在Python中向Slack频道发送消息

问题描述 投票:0回答:2

我需要使用 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!"
)
python chat slack
2个回答
3
投票

简而言之

  • 创建 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
    功能。
  • 向下滚动到范围部分,然后从下拉菜单中选择频道:读取和聊天:写入。
  • 单击保存更改。
  • 滚动回到此页面顶部,然后查找显示“将应用程序安装到工作区”的按钮(如果您之前已经执行过此操作,则重新安装应用程序)。点击它。

0
投票

我认为乔恩试图说的是你必须在操作系统环境中定义令牌。这涉及以管理员身份进入命令提示符并设置您希望与令牌关联的值,即名称 (my_token_name) = 机器人令牌值本身。下面的例子:

c:\set my_token_name = xobx-blah-blah-blah-token-value

这将暂时为您提供对所述令牌 API 功能的访问权限。如果你想要更永久的东西,比如说你将长期使用这个密钥,你可以将它输入到你的 Windows 环境中,如下所示:

  1. 右键单击桌面上或文件资源管理器中的“此电脑”或“计算机”。

  2. 单击“属性”>“高级系统设置”。

  3. 在“高级”选项卡下,单击“环境变量”。

  4. 在“系统变量”下,单击“新建”。输入 YOUR_SLACK_TOKEN 作为名称,输入您的实际 Slack 令牌(机器人或用户身份验证令牌)作为值。

  5. 单击“确定”并重新启动任何命令提示符或 IDE。

然后尝试重新运行您的 python 代码,记下调用新名称来替换您的实际令牌值!

我希望这可以帮助那些努力让 python 与 slack 进行通信的人。

© www.soinside.com 2019 - 2024. All rights reserved.