【问题标题】:Replying to a Thread using Slack Python Webhook API使用 Slack Python Webhook API 回复线程
【发布时间】:2019-12-09 14:31:45
【问题描述】:

我正在创建一个 Python 脚本来将消息发送到松弛通道。消息本身可以很好地传递,但是当我尝试启动一个线程并向该线程发送回复时,我无法让它工作。线程回复显示为新的父消息。

我正在使用位于 https://github.com/satoshi03/slack-python-webhook 的 slack-python-webhook 模块

import slackweb
import json
slack = slackweb.Slack(
    url="https://hooks.slack.com/services/XXXX/XXXX/XXXXXX")


attachment = [{"text": "This is TEXT",
              "ts": "1564629129"
              }]


print(json.dumps(attachment))
slack.notify(attachments=attachment)

attachment = [{"text": "This is Thread REPLY",
              "thread_ts": "1564629129",
              "thread_ts": "1564629130"
              }]

print(json.dumps(attachment))
slack.notify(attachments=attachment)

我想知道上面的代码 sn-p 需要更改什么,以便第二条消息将显示为线程回复。

【问题讨论】:

    标签: python python-3.x slack-api


    【解决方案1】:

    您的代码将无法运行,因为 webhook 不支持线程。如果你想回复线程,你需要使用 API 方法来发布消息(例如chat.postMessage)。

    这意味着您可能还需要使用不同的库,因为您问题中提到的库似乎只支持 webhook。

    你的语法也不正确。 thread_ts 不是附件的属性,而是像 channel 这样的 API 方法的参数。

    我建议查看slackclient。它是 Slack 的官方 Python 库,完全支持所有 API 方法,包括。线程。

    以下是使用 slackclient 回复主题的方法:

    import slack
    import os
    
    # init slack client with access token
    client = slack.WebClient(token=os.environ['SLACK_TOKEN'])
    
    # reply to a thread
    response = client.chat_postMessage(
        channel="general",
        text="This is a reply",
        thread_ts="1561764011.015500"
    )
    assert response["ok"]
    print(response)
    

    另请参阅 official guide 关于线程和 this answer 关于 webhook 和线程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多