Slack Connector 1.0 の例 - Mule 4

次の例は、公開 Slack チャネルを作成してメッセージをチャネルに投稿する方法を示しています。

これらの例では、一部の項目値に変数を使用しています。次のいずれかを実行できます。

  • コード内で変数を値に置き換える。

  • プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。

プロパティファイルの使用方法についての詳細は、​「プロパティプレースホルダーの設定」​を参照してください。

この例を試す前に、Anypoint Studio (Studio) にアクセスし、​[Mule Palette (Mule パレット)]​ ビューに Slack Connector のエントリが表示されていることを確認します。表示されない場合、​「コネクタを Mule プロジェクトに追加する」​の手順に従ってください。

チャネルの作成

次の例は、ユーザー固有の名前で公開 Slack チャネルを作成する方法を示しています。

次のスクリーンショットは、この例のアプリケーションフローを示しています。

チャネルの作成の例で使用されるコンポーネントを示しているアプリケーションフロー
Figure 1. チャネルの作成の例のアプリケーションフロー

この例を実装するには、新規 Mule プロジェクトを作成し、HTTP リスナー、Create Channel 操作、2 つの [Transform Message (メッセージの変換)] コンポーネント、1 つの [Logger (ロガー)] コンポーネントを設定する必要があります。

始める前に

この例では、接続設定と Slack アプリケーションの両方の ​channels:write​ スコープが必要です。

HTTP リスナーを設定する

ローカルホストポート ​8081​ で ​/create-channel​ パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。

  1. Studio で新しい Mule プロジェクトを作成します。

  2. Studio で ​[HTTP]​ をクリックし、​[Listener]​ 操作をキャンバスにドラッグします。

  3. [Listener (リスナー)] プロパティウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  4. デフォルトを受け入れます。

  5. [Listener (リスナー)] プロパティウィンドウで、​[Path (パス)]​ 項目値を ​/create-channel​ に設定します。

最初の [Transform Message] コンポーネントを追加する

最初の [Transform Message (メッセージの変換)] コンポーネントではチャネル名を入力として受け取り、名前を JSON 形式に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで ​[Core (コア)]​ を選択して ​[Transform Message (メッセージの変換)]​ コンポーネントを ​[Listener (リスナー)]​ の右側にドラッグします。

  2. [Transform Message (メッセージの変換)]​ コンポーネントの名前を ​Channel Details​ に変更します。

  3. [Transform Message (メッセージの変換)]​ コンポーネントをクリックし、チャネル名を出力に追加して、出力形式を ​application/json​ に設定します。

チャネル名を JSON 形式で指定している [Transform Message (メッセージの変換)] コンポーネント
Figure 2. チャネルの作成の例の最初の [Transform Message (メッセージの変換)] コンポーネント

Create Channel 操作を追加する

Create Channel 操作では Slack に接続し、要求を ​https://slack.com/api/conversations.create​ エンドポイントに投稿します。

  1. [Mule Palette (Mule パレット)]​ ビューから、​[Slack]​ を選択して ​[Create Channel]​ 操作を ​[Listener (リスナー)]​ の右側にドラッグします。

  2. [Search properties (検索プロパティ)] ウィンドウで、​[Connector configuration (コネクタ設定)]​ 項目の横にある ​[+]​ をクリックしてグローバル要素を追加します。

  3. 次の値を入力します。

    項目 Value (値)

    Consumer Key (コンシューマーキー)

    ${consumer.key}

    Consumer Secret (コンシューマーシークレット)

    ${consumer.secret}

    Authorization url (認証 URL)

    https://slack.com/oauth/authorize

    Access token url (アクセストークン URL)

    https://slack.com/api/oauth.access

    スコープ

    channels:write groups:write im:write mpim:write users:read.email

    Listener config (リスナー設定)

    HTTP_Listener-config

  4. [Slack properties (Slack プロパティ)] ウィンドウで、​[Conversationcreate content (Conversationcreate の内容)]​ 項目に「​payload​」と入力します。

2 つ目の [Transform Message] コンポーネントを追加する

2 番目の [Transform Message (メッセージの変換)] コンポーネントでは、​Create Channel​ 操作の結果を JSON 形式に変換します。

  1. [Mule Palette (Mule パレット)]​ ビューで ​[Core (コア)]​ を選択して ​[Transform Message (メッセージの変換)]​ コンポーネントを ​[Listener (リスナー)]​ の右側にドラッグします。

  2. [Transform Message (メッセージの変換)]​ コンポーネントの名前を ​Payload as JSON​ に変更します。

  3. 新しい ​[Transform Message (メッセージの変換)]​ コンポーネントをクリックして、出力を ​application/json​ に設定します。

    Create Channel 操作の出力を JSON 形式に変換する [Transform Message (メッセージの変換)] コンポーネント
    Figure 3. チャネルの作成の例の 2 番目の [Transform Message (メッセージの変換)] コンポーネント

[Logger (ロガー)] コンポーネントを追加する

[Logger (ロガー)] コンポーネントでは、クエリ結果がコンソールに記録されます。

  1. [Mule Palette (Mule パレット)]​ ビューで ​[Core (コア)]​ を選択し、​[Logger (ロガー)]​ コンポーネントを選択します。

  2. [Logger (ロガー)]​ コンポーネントを設定します。

  3. プロジェクトを保存します。

アプリケーションを実行する

アプリケーションを実行する手順は、次のとおりです。

  1. Mule アプリケーションを起動します。

  2. 要求を送信するには、OAuth ダンスを実行する必要があります。ブラウザーを開き、​http://localhost:8082/authorizeLeaving the Site​ に移動して、アプリケーションにアクセスできるようにします。

  3. POST 要求を ​http://localhost:8081/account?name="your channel name"​ に送信します。

この例の XML コード

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。

チャネルへのメッセージの投稿

次の例では、メッセージを公開、非公開、またはダイレクトメッセージ (IM) チャネルに投稿する方法を示しています。

次のスクリーンショットは、この例のアプリケーションフローを示しています。

チャネルへのメッセージの投稿の例で使用されるコンポーネントを示しているアプリケーションフロー
Figure 4. チャネルへのメッセージの投稿の例のアプリケーションフロー

始める前に

この例では、接続設定と Slack アプリケーションの両方の次のスコープが必要です。

  • chat:write

  • chat:write:user

  • chat:write:bot

コンポーネント

この例では、次のコンポーネントを使用します。

  • HTTP Listener (HTTP リスナー)

    ローカルホストポート 8081 で ​/send/message​ パスへのコールが行われたときに Mule フローを開始します。

  • 最初の [Transform Message (メッセージの変換)] コンポーネント

    対象チャネルを指定し、Send Message 操作のメッセージ内容を提供します。

  • Send Message 操作

    Slack に接続し、メッセージを指定されたチャネルに投稿します。

  • 2 番目の [Transform Message (メッセージの変換)] コンポーネント

    Send Message 操作の結果を JSON 形式で出力します。

  • ロガー

    Send Message 操作の結果をコンソールに記録します。

この例の XML コード

この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。