簡體   English   中英

使用Slack Python Webhook API回復線程

[英]Replying to a Thread using Slack Python Webhook API

我正在創建一個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)

我想知道需要在上述代碼段中進行哪些更改,以便第二條消息作為線程回復出現。

您的代碼將無效,因為網絡鈎子不支持線程。 如果要回復線程,則需要使用API​​方法來發布消息(例如chat.postMessage )。

這意味着您可能還需要使用其他庫,因為問題中提到的庫似乎僅支持webhooks。

另外,您的語法不正確。 thread_ts不是附件的屬性,而是API方法(例如channel的參數。

我建議檢查slackclient 它是Slack的官方Python庫,並且完全支持包括incl在內的所有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)

另請參閱有關線程的官方指南以及有關webhooks和線程的答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM