我試圖製作一個bot,它將聽取所有公開的&私人頻道以及團隊的即時消息,並在看到某些觸發詞時回覆。這將是一個「Slack App」,可通過「Add to Slack」按鈕安裝到您的團隊中,幷包含一個「Bot用戶」。使用Slack Events API收聽和回覆Slack Bot需要什麼OAuth Scopes?
我已經要求提供「bot」OAuth範圍,並且訂閱了「message.channels,message.groups和message.im」團隊事件(在https://api.slack.com/apps/myAppId/event-subscriptions),但似乎沒有通過Events API接收事件POST新消息發送時。
添加「頻道:歷史,組:歷史,即時:歷史」範圍使機器人接收這些事件帖子,但我相信只爲添加機器人的用戶,所以它不會觀看添加 - 用戶不是其他兩個用戶之間的成員或IM。這意味着行爲會有所不同,具體取決於哪個用戶安裝了我的機器人。
有沒有辦法爲整個團隊安裝app/bot?該文檔似乎表明,一個「機器人」範圍應該有能力接收事件,但我沒有看到這一點(我需要上述通道:歷史範圍等)。
bot - 當您的Slack應用程序包含bot用戶功能時請求此範圍。與incoming-webhook和命令不同,bot範圍授予您的bot用戶對Events API中的Web API方法子集,RTM API和某些事件類型的訪問權限。
對機器人的網頁還聲稱,一個機器人可以通過RTM API收到的所有消息:
這的WebSocket會送你所有的信息和活動的那發生在公共和私人頻道,殭屍用戶被邀請,以及通過直接消息發送給它的消息。 bot用戶通過向rtm.start API方法發送經過驗證的調用來打開帶有RTM API的websocket。要了解有關連接到RTM API的更多信息,請閱讀此處的文檔。 (從https://api.slack.com/bot-users)
這是相同的行爲可能在事件的API,而無需使用RTM API或添加上面提到的那些附加的範圍?
由於向我的應用程序添加了bot用戶,因此「事件訂閱」頁面中出現了一個「機器人事件」部分,我可以訂閱「message.channels」並且不需要channels:history權限(與此相反文檔)。但是,bot用戶需要被邀請到我要監控的所有渠道,這會使安裝過程更加複雜。 – Crashthatch