2016-08-21 166 views
1

我試圖製作一個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和某些事件類型的訪問權限。

(從https://api.slack.com/docs/oauth-scopes

對機器人的網頁還聲稱,一個機器人可以通過RTM API收到的所有消息:

這的WebSocket會送你所有的信息和活動的那發生在公共和私人頻道,殭屍用戶被邀請,以及通過直接消息發送給它的消息。 bot用戶通過向rtm.start API方法發送經過驗證的調用來打開帶有RTM API的websocket。要了解有關連接到RTM API的更多信息,請閱讀此處的文檔。 (從https://api.slack.com/bot-users

這是相同的行爲可能在事件的API,而無需使用RTM API或添加上面提到的那些附加的範圍?

+0

由於向我的應用程序添加了bot用戶,因此「事件訂閱」頁面中出現了一個「機器人事件」部分,我可以訂閱「message.channels」並且不需要channels:history權限(與此相反文檔)。但是,bot用戶需要被邀請到我要監控的所有渠道,這會使安裝過程更加複雜。 – Crashthatch

回答

0

我從您的評論中瞭解到,您已經瞭解bot範圍(和channels.message Events訂閱)允許您的機器人從中的渠道接收

你有兩個選擇 1)你問除了機器人channel.write範圍,您邀請所有通道中的機器人(使用用戶令牌,而不是機器人令牌) 2)你的工作你的入職和找出一種方法來讓你的「冠軍」,即安裝你的應用程序的用戶,邀請你的機器人在相關頻道。

請記住,解決方案1)通常被視爲非常具有侵入性,特別是在大多數人沒有聽說過您的應用程序,也沒有做出安裝決定的大型團隊中。但它可以適用於一些非常具體的用例。選項2)是推薦的路線,但它很難:-)祝你好運!