私は、呼び出された結果を発行者に返し、特定のチャネルに別のメッセージを書き込むコマンドを作成したいと思う。発行者と特定のチャネルに応答を送るためにslackコマンドを作成する
これは可能ですか?
ドキュメントではin_channel
プロパティを設定できることがわかりましたが、特定のチャネルに送信される応答を指定したい場合や、特定のチャネルに対してコマンド呼び出しを制限する場合もあります。
私は、呼び出された結果を発行者に返し、特定のチャネルに別のメッセージを書き込むコマンドを作成したいと思う。発行者と特定のチャネルに応答を送るためにslackコマンドを作成する
これは可能ですか?
ドキュメントではin_channel
プロパティを設定できることがわかりましたが、特定のチャネルに送信される応答を指定したい場合や、特定のチャネルに対してコマンド呼び出しを制限する場合もあります。
はい、標準slash commmandで実現できます。スラッシュコマンドはアプリを起動し、結果をユーザーに返信し、chat.postMessage
でメッセージを別のチャンネルに送信することもできます(すべてが必要な権限を持っている場合)。
スラッシュコマンドの呼び出しを特定のチャンネルに制限することは可能ですが、パブリックチャンネルの場合にのみ有効です。
パブリックチャンネルの場合、アプリケーションはすべてのリクエストでスラッシュコマンドが呼び出された場所からチャンネルIDを取得します。あなたのアプリはその情報を使ってコマンドが許可されているかどうかを判断し、それに応じて応答することができます。
プライベートチャンネルの場合、チャンネル名はprivategroup
ですが、実際の名前やグループIDは表示されません。もちろん、この情報を使用して、すべてのプライベートチャネルでコマンドの使用を除外できますが、特定のものでは使用できません。ここで
は、あなたのアプリがスラックから取得要求の例である:
token=gIkuvaNzQIHg97ATvDxqgjtO
team_id=T0001
team_domain=example
enterprise_id=E0001
enterprise_name=Globular%20Construct%20Inc
channel_id=C2147483705
channel_name=test
user_id=U2147483697
user_name=Steve
command=/weather
text=94070
response_url=https://hooks.slack.com/commands/1234/5678
trigger_id=13345224609.738474920.8088930838d88f008e0