[英]Python Slack Bot won't post in direct messages
我已經用Python編寫了一個Slack Bot,當我在聊天頻道中使用斜線命令時,它按設計工作,但是當我嘗試在與其他用戶的直接消息中與機器人進行交互時,響應永遠不會顯示。 但是,當我查看應用程序日志時,我仍然收到來自Slack的POST,因此我的應用程序正在接收響應並發送回響應。
我啟用了以下權限:
在我的代碼中,執行以下api_call:
slack_client.api_call(
"chat.postMessage",
channel=[channelId],
attachments=[],
unfurl_links=True,
unfurl_media=True,
as_user=True
)
記錄顯示,無論是頻道還是直接消息,我都收到正確的ChannelId。
我的問題是:我的slack_client.api_call是否缺少權限或命令?
您的方法不適用於直接渠道,坦率地說也不適用於某些私人渠道。
原因是Slack的基本安全功能之一:您的bot用戶或您的應用程序令牌的所有者(例如,應用程序安裝程序)必須是直接或私有渠道的成員,以便您的應用程序/機器人可以訪問該通道,例如能夠向其發送消息。 沒有權限設置或范圍可以更改。
不過,針對您的特定情況有一個簡單的解決方法:與其通過API發送消息,不如直接從Slack回復斜線命令請求。 這將適用於任何渠道,包括直接和私人渠道。
回復的工作方式類似於通過API發布消息,您可以使用純文本或JSON。 有關語法,請參見官方文檔中的“ 響應命令 ”。
這是帶有附件的完整郵件的示例。 請注意,您需要將內容標頭設置為JSON:
{
"text": "It's 80 degrees right now.",
"attachments": [
{
"text":"Partly cloudy today and tomorrow"
}
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.