You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于通过Python脚本调用Slack Huddle API的技术问询

Slack Huddles Python 实现方案说明

调研背景

Slack 官方API中几乎没有面向开发者的Huddles相关公开资源,仅找到少量相关线索,针对以下两个问题给出可行方案:

问题1:获取新创建频道的Huddle链接

Slack官方API没有直接提供获取Huddle链接的端点,但可以通过两种可靠方式实现:

  • 构造固定格式链接:Slack Huddle的链接格式是统一的:https://app.slack.com/huddle/[WORKSPACE_ID]/[CHANNEL_ID]。只要在频道创建时通过Slack Events API监听channel_created事件,拿到频道ID和所在工作区ID,就能直接生成对应的Huddle链接。
  • 监听Huddle初始化事件:如果频道创建后有自动初始化Huddle的操作,可通过Events API监听huddle_started事件,从事件 payload 中提取Huddle链接。

Python代码示例(基于slack-sdk):

from slack_sdk import WebClient
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler

# 初始化App
app = App(token="YOUR_BOT_TOKEN")
client = WebClient(token="YOUR_BOT_TOKEN")

# 监听频道创建事件
@app.event("channel_created")
def handle_channel_created(event, say):
    channel_id = event["channel"]["id"]
    workspace_id = client.team_info()["team"]["id"]
    # 构造Huddle链接
    huddle_link = f"https://app.slack.com/huddle/{workspace_id}/{channel_id}"
    print(f"新频道Huddle链接:{huddle_link}")

if __name__ == "__main__":
    SocketModeHandler(app, "YOUR_APP_LEVEL_TOKEN").start()

问题2:通过Python脚本发起Huddle通话

Slack官方API没有直接发起Huddle的接口,但可以通过以下两种方式实现:

  • 发送带Huddle发起按钮的消息:使用Slack Block Kit构造包含「发起Huddle」按钮的消息,通过chat.postMessage API发送到目标频道。用户点击按钮即可发起Huddle,这是官方允许的合规方式。
  • 调用内部接口(非常规方法):如果需要完全自动化发起,可逆向工程Slack网页端或客户端的Huddle发起请求,但这种方法不受官方支持,接口可能随时变更,存在封号风险,不推荐。

Python代码示例(发送带Huddle按钮的消息):

from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError

client = WebClient(token="YOUR_BOT_TOKEN")

try:
    response = client.chat_postMessage(
        channel="TARGET_CHANNEL_ID",
        blocks=[
            {
                "type": "section",
                "text": {"type": "mrkdwn", "text": "点击下方按钮发起Huddle通话"},
                "accessory": {
                    "type": "button",
                    "text": {"type": "plain_text", "text": "发起Huddle"},
                    "action_id": "start_huddle",
                    "url": "https://app.slack.com/huddle/[WORKSPACE_ID]/[CHANNEL_ID]"
                }
            }
        ]
    )
    print("消息发送成功")
except SlackApiError as e:
    print(f"Error: {e.response['error']}")

注:如果已经解决问题1获取到Huddle链接,可直接将链接填入按钮的url字段,用户点击后会直接进入Huddle通话界面。

内容的提问来源于stack exchange,提问作者Martin Markovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 14:21:11