Slack-アクション
要件
すべてのSlackアクションは、Slack Web APIを使用してレシピアクションを実行します。
Slackアクションを使用する前に、Slack appを作成する必要があります。 Slack appの作成方法については、Slackトリガードキュメントを参照してください。
権限スコープ
接続されたSlack appは、ユーザーに代わってSlackアクションを実行します。 各アクションを実行するには、アプリに関連付けられた権限スコープが必要です。 たとえば、会話を作成アクションはconversations.createメソッドを使用します。このメソッドでは、接続されたSlack appにchannels:writeスコープが必要です。
次の表では、最適な使用に必要な最小権限について説明します。
| トークンタイプ | スコープ | 理由 |
|---|---|---|
| ボット | なし | ボットスコープは不要です。 |
| ユーザー | channels:read | パブリック会話のリストを取得します。 |
channels:write | パブリック会話を作成または更新します。 | |
groups:read | プライベート会話のリストを取得します。 | |
groups:write | プライベート会話を作成または更新します。 | |
im:read | ダイレクトメッセージ会話のリストを取得します。 | |
im:write | ダイレクトメッセージ会話を作成または更新します。 | |
mpim:write | マルチパーティグループ会話を作成または更新します。 | |
mpim:read | マルチパーティグループ会話のリストを取得します。 | |
chat:write | ユーザーとしてメッセージを投稿します。 | |
users:read | ユーザー情報を取得します。 | |
users:read.email | メールでユーザー情報を取得します。 |
権限スコープの追加または削除
アプリの権限スコープを追加または削除するには:
Slack appのページに移動します。 このページのURLは次の形式を使用します:
https://api.slack.com/apps/{app_id}app_idはアプリごとに一意です。
OAuth & Permissions > Scopesに移動して、アプリの権限スコープを選択します。
権限スコープを追加
Save changesをクリックして、権限スコープを保存します。
イベントサブスクリプションと権限スコープ
イベントをサブスクライブすると、Slackはアプリにまだないスコープを自動的に追加します。 これにより、追加されたスコープによってアプリに意図しない権限が付与される可能性があります。 イベントをサブスクライブした後、OAuth & Permissions > Scopesに移動して、アプリの権限スコープを確認することをお勧めします。
メッセージを投稿アクション
メッセージを投稿アクションは、指定したチャンネルまたはユーザーにメッセージを投稿します。 デフォルトでは、メッセージは認証済みユーザーとして投稿されます。
認証済みユーザーとして投稿されたメッセージ
詳細については、Custom OAuth profilesドキュメントを参照してください。
仕組み
投稿するメッセージは、単純なものから複雑なものまで設定できます。 たとえば、このコネクターを設定して1行のテキストを含むメッセージを投稿したり、テキスト、ボタン、メニュー、アイコン、画像の組み合わせを含めたりできます。
入力
チャンネル
チャンネル(パブリックおよびプライベート)または特定のユーザーにメッセージを投稿できます。
チャンネル名を使用してチャンネルにメッセージを投稿する場合は、#support-ticket-101のように、先頭に#を付けます。 それ以外の場合は、チャンネルIDとチャンネルデータピルをそのまま使用します。たとえば、それぞれCANUXC4MUまたはチャンネルです。
チャンネルデータピル
同様に、ユーザー名を使用してユーザーにダイレクトメッセージ(DM)を投稿する場合は、@johndoeのように、先頭に@を付けます。 それ以外の場合は、ユーザーIDとユーザーデータピルを変更せずに使用します。 たとえば、それぞれUA12345またはユーザーIDです。
ユーザーデータピル
基本テキスト
これは、メッセージ投稿の最も基本的なテキストフィールドです。
Slackの基本テキスト
Slack書式設定を許可が有効な場合、ユーザーIDまたはユーザー名を<@ >で囲むことで、メッセージ内でユーザーをタグ付けできます。たとえば、ユーザーIDとユーザー名にはそれぞれ<@UA12345>または<@johndoe>を使用します。
添付ファイルタイトル
この入力は、投稿メッセージに添付ファイルタイトルを追加します。
Slackの添付ファイルタイトルテキスト
添付ファイルタイトルリンク
有効なURLを指定すると、このフィールドは添付ファイルタイトルにハイパーリンクされ、クリックしたユーザーはそこにリダイレクトされます。
Slackの添付ファイルタイトルリンク
ユースケースの例
ダウンロード可能なリンクを使用してSlackで画像添付ファイルを共有するレシピの作成方法については、パブリックリンクを使用してメールの画像添付ファイルをSlackで共有するユースケースを参照してください。
添付ファイルテキスト
このフィールドは、添付ファイルタイトルの下に、添付ファイルテキストを投稿メッセージに追加します。
Slackの添付ファイルテキスト
添付ファイルメッセージフィールド
このフィールドは、メッセージテキストの下に2列のレイアウトを作成します。 1行に1つの名前と値のペアを入力します。例: Name: John。
Slackの添付ファイルメッセージフィールド
ボタン
このフィールドは、投稿メッセージにボタンを追加します。 このボタンがクリックされると、ボタンクリックイベントがトリガーされます。 このイベントを処理するには、別のレシピが必要です。 ボタンクリックトリガーの詳細については、Slackトリガードキュメントを参照してください。
ボタンアクションハンドラーレシピ
このフィールドには、ボタンクリックトリガーを持つSlackレシピが一覧表示されます。 レシピを選択すると、このボタンからのボタンクリックによってそのレシピがトリガーされるようになります。
ボタンアクション
このフィールドは、ボタンの特定の特性を指定します。 各行に1つのボタンアクションを次の形式で入力します:
action name, action ID, style, confirmation title, confirmation text, ok button title, dismiss button titledangerスタイルではないアクションの場合、ポップアッププロンプトは生成されないため、最初の2つのパラメーターのみ入力が必要です。 例:
Notify BizDev, bd, , , , ,dangerスタイルのアクションの場合、7つすべてのパラメーターを入力する必要があります。 例:
Notify Sales, sales, danger, Confirm, Are you sure?, Yes, Cancel次の表に、各ボタンパラメーターの詳細な説明を示します。
| ボタン定義入力フィールド | 説明 |
|---|---|
| アクション名 | ボタンを操作するSlackユーザーに表示されるボタンラベル。 |
| アクションID | ボタンの内部値。 これは一意である必要があります。 この値はSlack上で誰にも表示されません。 |
| スタイル | dangerスタイルではないアクションではポップアップが生成されないため、このフィールドと残り4つのフィールドを空白のままにします。 それ以外の場合は、dangerを入力して、ボタンクリックの確認をユーザーに求めるポップアッププロンプト付きの赤いボタンを生成します。 dangerボタンを設定する場合は、残り4つのフィールドに入力する必要があります。 |
| 確認タイトル | この値は、ポップアッププロンプトにヘッダーとして表示されます。 |
| 確認テキスト | この値は、ポップアッププロンプトに本文テキストとして表示されます。 |
| OKボタンタイトル | ボタンクリックを確認するための、ポップアッププロンプト内のボタンラベル。 |
| 閉じるボタンタイトル | ボタンクリックをキャンセルするための、ポップアッププロンプト内のボタンラベル。 |
Slackのボタン
添付ファイル色
このフィールドでは、メッセージの左側にある縦線の色を選択できます。
Slackの添付ファイル色
サムネイルURL
有効な画像URLを指定すると、このフィールドはメッセージの右側にサムネイル画像を表示します。
画像URL
有効な画像URLを指定すると、このフィールドはメッセージの下部に画像を表示します。 画像は最大幅400pxまたは最大高さ500pxにサイズ変更されます。
Slackの画像URL
Slack書式設定を許可
有効にすると、このフィールドでは、ユーザーIDまたはユーザー名を< >で囲むことで、メッセージ内でユーザーをタグ付けできます。たとえば、ユーザーIDとユーザー名にはそれぞれ<UA12345>または<@johndoe>を使用します。
Slack書式設定を許可してユーザーをタグ付け
スレッドID
Slackスレッドを使用すると、関連するメッセージをまとめてグループ化でき、Slackチャンネルまたはグループでの会話を追いやすくなります。
既存のスレッドにメッセージを投稿するには、このフィールドにスレッドIDデータピルを入力します。 または、親メッセージのメッセージIDを渡すこともできます。
親メッセージIDを渡してスレッドを続行
スレッドIDを使用してアクションを設定する方法については、このボタンアクションのサンプルレシピを参照してください。
スレッドがまだ存在しないものの、親メッセージの下にスレッド化されたメッセージを投稿する予定の場合は、親メッセージのMessage IDを指定します。
投稿者名(非推奨)
このフィールドでは、メッセージを投稿するユーザーの名前を変更できます。 デフォルトでは、メッセージは認証済みユーザーとして投稿されます。 このフィールドはClassic Slack appsでのみ機能します。 Classic Slack appsは、古い包括的なbotスコープを利用して、2020年6月10日より前に作成されたアプリです。
Slackでの表示例
アイコン画像URL(非推奨)
このフィールドでは、メッセージを投稿するユーザーのアイコンを変更できます。 デフォルトでは、メッセージは認証済みユーザーとして投稿されます。 このフィールドはClassic Slack appsでのみ機能します。 Classic Slack appsは、古い包括的なbotスコープを利用して、2020年6月10日より前に作成されたアプリです。
Slackでの表示例
ボタンクリックに応答アクション
ボタンクリックに応答アクションは、ボタンクリック(リアルタイム)トリガーと連携し、ボタンクリックに応答してメッセージを投稿します。
仕組み
ボタンクリック(リアルタイム)トリガーの出力から応答URLピルを渡すことで、レシピは実行時にどのボタンがクリックされたかを認識できます。
メッセージを投稿アクションと同様に、このアクションでは、ユースケースに応じて、単純な1行のテキストのみのメッセージや、テキスト、ボタン、メニュー、アイコン、画像を組み合わせたメッセージを投稿できます。
入力
以下は、Slackアクションボタンに応答が、メッセージを投稿アクションの通常の入力フィールドに加えて持つ追加の入力フィールドです。
| 入力フィールド | 説明 |
|---|---|
| ボタンレスポンスURL | この値は、Slackトリガー新規ボタンアクションの出力データツリーから取得できます。 これは、どのボタンクリックに応答するかをアクションに伝えます。 |
| レスポンスタイプ | チャンネル内: 通常のチャットメッセージのようにメッセージを投稿します。 エフェメラル: ボタンをクリックしたユーザーにのみ表示されるようにメッセージを投稿します。 |
| 元のメッセージを置換 | はいの場合、ボタン付きの元のメッセージは新しいメッセージで上書きされ、チャンネル内の同じ位置に投稿されます。 noの場合、ボタン付きの元のメッセージはチャンネル内の同じ位置に残ります。 新しいメッセージはチャンネル会話の末尾に追加されます。 |
| 元のメッセージを削除 | yesの場合、ボタン付きの元のメッセージはチャンネルから削除されます。 新しいメッセージはチャンネル会話の末尾に追加されます。 noの場合、ボタン付きの元のメッセージはチャンネル内の同じ位置に残ります。 新しいメッセージはチャンネル会話の末尾に追加されます。 |
会話にユーザーを招待アクション
会話にユーザーを招待アクションは、ユーザーを会話に招待します。

入力
ユーザー
ユーザーID/名前またはユーザーIDデータピルのいずれかを使用できます。 ユーザー名の先頭に‘@’を付けます。例: @johndoe。 ただし、ユーザーIDとユーザーIDデータピルは、先頭に'@'を付けずにそのまま使用します。例: UA12345またはID。
利用可能なユーザーを選択するには、ユーザーを選択に切り替えます。 
会話
ユーザーを招待する会話を選択します。 または、会話IDを使用するか、チャンネルデータピルで動的に設定できます。
利用可能な会話を選択するには、会話を選択に切り替えます。 
会話をアーカイブアクション
会話をアーカイブアクションでは、アプリが追加されているパブリックチャンネル、プライベートチャンネル、およびマルチパーティグループをアーカイブできます。 Slackワークスペースの#generalチャンネルはアーカイブできないことに注意してください。

入力
会話
アーカイブする会話を選択します。 または、会話IDを使用するか、チャンネルデータピルで動的に設定できます。
利用可能な会話を選択するには、会話を選択に切り替えます。
Select channelへの切り替え
会話のアーカイブを解除アクション
会話のアーカイブを解除アクションでは、パブリックチャンネルとプライベートチャンネルのアーカイブを解除できます。

入力
会話
アーカイブを解除する会話を選択します。 または、会話IDを使用するか、チャンネルデータピルで動的に設定できます。
利用可能な会話を選択するには、会話を選択に切り替えます。
'Select conversation'への切り替え
会話を作成アクション
会話を作成アクションは、指定されたチャンネル名でチャンネルを作成します。 プライベートチャンネルも作成できます。 チャンネル名には小文字、数字、ハイフン、アンダースコアのみを使用でき、80文字以下である必要があります。
会話を作成アクション
入力
プライベートチャンネルですか?
プライベートチャンネルを作成するには、はいに設定します。 デフォルトはいいえです。
すでに存在する場合はチャンネルの詳細を返しますか?
デフォルトでは、チャンネルがすでに存在する場合、このアクションはエラーを返します。 エラーを防ぎ、代わりに既存のチャンネルの詳細を返すようWorkatoに指示するには、この入力をはいに設定します。 会話数が多いワークスペースでは、Workatoは最初の1000レコードのみを取得して検索します。 これは、Slack APIにより課される制限が原因です。Slack APIでは、チャンネル名による会話のフィルタリングがサポートされていません。 最初の1000レコード内に一致するエントリが見つからない場合、Workatoはエラーを返します。
会話の目的を設定アクション
会話の目的を設定アクションでは、会話の目的を設定できます。
会話の目的を設定アクション
入力
会話
目的を設定する会話を選択します。 または、会話IDを使用するか、チャンネルデータピルを使用して会話の目的を動的に設定できます。
利用可能な会話を選択するには、会話を選択に切り替えます。
Select conversationへの切り替え
会話の目的
会話の目的を設定します。 このフィールドでは、ユーザーのタグ付けを含むSlack書式設定が機能します。
例:
入力
"Hi <@johndoe>, how are _you_ *doing*?"出力
こんにちは@johndoe、_元気_ですか、調子はどうですか?
Slackでのメッセージ書式設定の詳細については、Slackのドキュメントを参照してください。
会話のトピックを設定アクション
会話のトピックを設定アクションでは、会話のトピックを設定できます。
会話のトピックを設定アクション
このフィールドでは、ユーザーのタグ付けを含むSlack書式設定が機能します。 例:
入力
"Hi <@johndoe>, how are _you_ *doing*?"出力
こんにちは@johndoe、_元気_ですか、調子はどうですか?
Slackでのメッセージ書式設定の詳細については、Slackのドキュメントを参照してください。
入力
会話
トピックを設定する会話を選択します。 または、会話IDを使用するか、チャンネルデータピルを使用して動的に設定できます。
利用可能な会話を選択するには、会話を選択に切り替えます。
Select conversationsへの切り替え
会話のトピック
会話の目的を設定します。 トピックは250文字以下である必要があります。 このフィールドでは、ユーザーのタグ付けを含むSlack書式設定が機能します。
例:
入力
"Hi <@johndoe>, how are _you_ *doing*?"出力
こんにちは@johndoe、_元気_ですか、調子はどうですか?
Slackでのメッセージ書式設定の詳細については、Slackのドキュメントを参照してください。
Last updated: