2016-08-21 7 views
1

私はすべての公衆&のプライベートチャンネルとチームのIMを聞くボットを作ろうとしており、特定のトリガーワードを見たときに返信します。これは、 "スラックに追加"ボタンを使用してチームにインストールできる "スラックアプリ"になり、 "ボットユーザー"が含まれます。スラックイベントAPIを使用したリッスン&リプライスラックボットには、どのようなOAuthスコープが必要ですか?

「bot」OAuthスコープをリクエストし、「message.channels、message.groups、message.im」チームイベント(https://api.slack.com/apps/myAppId/event-subscriptions)を購読しましたが、Events API経由でイベントPOSTを受信して​​いないようです新しいメッセージが送信されたとき。

"channels:history、groups:history、im:history"スコープを追加すると、ボットはこれらのイベントPOSTを受信できますが、ボットを追加したユーザーのみが信じているので、ユーザーは他の2人のユーザーのメンバーではありませんでした。これは、ボットをインストールしたユーザーに応じて動作が異なることを意味します。

チーム全体でapp/botをインストールする方法はありますか?ドキュメンテーションは、「ボット」スコープがイベントを受け取る能力を持つべきであることを示しているようですが、私はこれを見ていません(上記の履歴スコープなどを必要とします)。

ボット - スラックアプリにボットユーザー機能が含まれている場合、このスコープをリクエストしてください。受信webhookおよびコマンドとは異なり、ボットスコープは、ボットユーザーにWeb APIメソッド、RTM API、およびEvents APIの特定のイベントタイプのサブセットへのアクセスを許可します。

ボットのページには、ボットがRTM APIを介してすべてのメッセージを受け取ることができると主張

https://api.slack.com/docs/oauth-scopesから):

これのWebSocketはあなたにメッセージや活動のすべてを送信することボットユーザーが招待された公開チャネルと非公開チャネルのほか、直接メッセージ経由で送信されるメッセージが発生します。ボットユーザーは、認証された呼び出しをrtm.start APIメソッドに送信することによって、このWebソケットをRTM APIで開きます。 RTM APIへの接続の詳細については、こちらのドキュメントを参照してください。 (https://api.slack.com/bot-usersから)

は、RTMのAPIを使用するか、上記のもの、追加のスコープを追加することなく、イベントのAPIで可能で、これと同じ動作ですか?

+0

私のアプリにボットユーザーを追加したので、「イベント購読」ページに「ボットイベント」セクションが表示されました。このセクションでは、「message.channels」を購読できます。ドキュメンテーション)。しかし、ボットのユーザーは、監視したいすべてのチャネルに招待する必要があり、インストールプロセスが複雑になります。 – Crashthatch

答えて

0

あなたのご意見から、あなたのボットスコープ(そしてchannels.message Eventsサブスクリプション)は、ボットがにあるチャンネルからを受け取れることを理解しています。

あなたは持っている二つのオプション 1)あなたは、ボットに加えてchannel.write範囲を求めると、あなたは、ないボットトークン) 2)あなたが仕事ユーザートークンを使用して(すべてのチャンネルにボットを招待あなたのオンボーディングとあなたの "チャンピオン"、つまりあなたのアプリをインストールしたユーザーを得る方法を見つけて、関連するチャンネルにあなたのボットを招待してください。

解決策1)は、通常、大部分の人があなたのアプリケーションのことを聞いていない大規模なチームやインストールの決定をしていない場合、非常に邪魔になります。しかし、非常に特殊なユースケースには適しています。オプション2)は推奨ルートですが、それは難しいです:-)幸運を祈る!