Flex Gateway新着情報
Governance新着情報
Monitoring API Manager次の例は、公開 Slack チャネルを作成してメッセージをチャネルに投稿する方法を示しています。
これらの例では、一部の項目値に変数を使用しています。次のいずれかを実行できます。
コード内で変数を値に置き換える。
プロパティファイルで各変数の値を指定しておき、コネクタ設定からそのファイルを参照する。
プロパティファイルの使用方法についての詳細は、「プロパティプレースホルダーの設定」を参照してください。
この例を試す前に、Anypoint Studio (Studio) にアクセスし、[Mule Palette (Mule パレット)] ビューに Slack Connector のエントリが表示されていることを確認します。表示されない場合、「コネクタを Mule プロジェクトに追加する」の手順に従ってください。
次の例は、ユーザー固有の名前で公開 Slack チャネルを作成する方法を示しています。
次のスクリーンショットは、この例のアプリケーションフローを示しています。
この例を実装するには、新規 Mule プロジェクトを作成し、HTTP リスナー、Create Channel 操作、2 つの [Transform Message (メッセージの変換)] コンポーネント、1 つの [Logger (ロガー)] コンポーネントを設定する必要があります。
この例では、接続設定と Slack アプリケーションの両方の channels:write
スコープが必要です。
ローカルホストポート 8081
で /create-channel
パスへのコールが行われたときに Mule フローを開始するように HTTP リスナーを設定します。
Studio で新しい Mule プロジェクトを作成します。
Studio で [HTTP] をクリックし、[Listener] 操作をキャンバスにドラッグします。
[Listener (リスナー)] プロパティウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
デフォルトを受け入れます。
[Listener (リスナー)] プロパティウィンドウで、[Path (パス)] 項目値を /create-channel
に設定します。
最初の [Transform Message (メッセージの変換)] コンポーネントではチャネル名を入力として受け取り、名前を JSON 形式に変換します。
[Mule Palette (Mule パレット)] ビューで [Core (コア)] を選択して [Transform Message (メッセージの変換)] コンポーネントを [Listener (リスナー)] の右側にドラッグします。
[Transform Message (メッセージの変換)] コンポーネントの名前を Channel Details
に変更します。
[Transform Message (メッセージの変換)] コンポーネントをクリックし、チャネル名を出力に追加して、出力形式を application/json
に設定します。
Create Channel 操作では Slack に接続し、要求を https://slack.com/api/conversations.create
エンドポイントに投稿します。
[Mule Palette (Mule パレット)] ビューから、[Slack] を選択して [Create Channel] 操作を [Listener (リスナー)] の右側にドラッグします。
[Search properties (検索プロパティ)] ウィンドウで、[Connector configuration (コネクタ設定)] 項目の横にある [+] をクリックしてグローバル要素を追加します。
次の値を入力します。
項目 | Value (値) |
---|---|
Consumer Key (コンシューマーキー) |
|
Consumer Secret (コンシューマーシークレット) |
|
Authorization url (認証 URL) |
|
Access token url (アクセストークン URL) |
|
スコープ |
|
Listener config (リスナー設定) |
|
[Slack properties (Slack プロパティ)] ウィンドウで、[Conversationcreate content (Conversationcreate の内容)] 項目に「payload
」と入力します。
2 番目の [Transform Message (メッセージの変換)] コンポーネントでは、Create Channel 操作の結果を JSON 形式に変換します。
[Mule Palette (Mule パレット)] ビューで [Core (コア)] を選択して [Transform Message (メッセージの変換)] コンポーネントを [Listener (リスナー)] の右側にドラッグします。
[Transform Message (メッセージの変換)] コンポーネントの名前を Payload as JSON
に変更します。
新しい [Transform Message (メッセージの変換)] コンポーネントをクリックして、出力を application/json
に設定します。
[Logger (ロガー)] コンポーネントでは、クエリ結果がコンソールに記録されます。
[Mule Palette (Mule パレット)] ビューで [Core (コア)] を選択し、[Logger (ロガー)] コンポーネントを選択します。
[Logger (ロガー)] コンポーネントを設定します。
プロジェクトを保存します。
アプリケーションを実行する手順は、次のとおりです。
Mule アプリケーションを起動します。
要求を送信するには、OAuth ダンスを実行する必要があります。ブラウザーを開き、http://localhost:8082/authorize
に移動して、アプリケーションにアクセスできるようにします。
POST 要求を http://localhost:8081/account?name="your channel name"
に送信します。
この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:slack="http://www.mulesoft.org/schema/mule/slack"
xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/slack http://www.mulesoft.org/schema/mule/slack/current/mule-slack.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
<slack:config name="Slack_Connector_Config" doc:name="Slack Connector Config" >
<slack:slack-auth-connection >
<slack:oauth-authorization-code consumerKey="${consumer.key}" consumerSecret="${consumer.secret}" scopes="channels:write groups:write im:write mpim:write users:read.email "/>
<slack:oauth-callback-config listenerConfig="HTTP_Listener_config" callbackPath="/callback" authorizePath="/authorize" externalCallbackUrl="http://localhost:8081/callback"/>
</slack:slack-auth-connection>
</slack:config>
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<configuration-properties doc:name="Configuration properties" file="application.properties" />
<flow name="create-channel-flow" >
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/create-channel"/>
<ee:transform doc:name="Channel Details" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
name: "your-channel-name"
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<slack:create-conversationscreate doc:name="Create Channel" config-ref="Slack_Connector_Config"/>
<ee:transform doc:name="Payload as Json" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Result" message="#[payload]"/>
</flow>
<flow name="send-message-to-channel-flow" >
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/send-message"/>
<ee:transform doc:name="Message Details" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
channel: "your-existing-channel",
text: "Your text goes here"
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<slack:create-chatpost-message doc:name="Send Message" config-ref="Slack_Connector_Config"/>
<ee:transform doc:name="Payload as Json" >
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Result" message="#[payload]"/>
</flow>
</mule>
xml
次の例では、メッセージを公開、非公開、またはダイレクトメッセージ (IM) チャネルに投稿する方法を示しています。
次のスクリーンショットは、この例のアプリケーションフローを示しています。
この例では、接続設定と 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 操作の結果をコンソールに記録します。
この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
xmlns:slack="http://www.mulesoft.org/schema/mule/slack"
xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/slack http://www.mulesoft.org/schema/mule/slack/current/mule-slack.xsd
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
<slack:config name="Slack_Connector_Config" doc:name="Slack Connector Config" >
<slack:slack-auth-connection >
<slack:oauth-authorization-code consumerKey="${consumer.key}" consumerSecret="${consumer.secret}" scopes="channels:write groups:write im:write mpim:write users:read.email "/>
<slack:oauth-callback-config listenerConfig="HTTP_Listener_config" callbackPath="/callback" authorizePath="/authorize" externalCallbackUrl="http://localhost:8081/callback"/>
</slack:slack-auth-connection>
</slack:config>
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<configuration-properties doc:name="Configuration properties" file="application.properties" />
<flow name="find-user-by-email-flow" >
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="find-by-email"/>
<slack:get-userslookup-by-email doc:name="Find User by Email" config-ref="Slack_Connector_Config" email="example@emailaddress.com"/>
<ee:transform doc:name="Payload as Json" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Lookup Result" message="#[payload]"/>
</flow>
<flow name="send-message-to-channel-flow" >
<http:listener doc:name="Listener" config-ref="HTTP_Listener_config" path="/send-message"/>
<ee:transform doc:name="Message Details" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
channel: "your-existing-channel",
text: "Your text goes here"
}]]></ee:set-payload>
</ee:message>
</ee:transform>
<slack:create-chatpost-message doc:name="Send Message" config-ref="Slack_Connector_Config"/>
<ee:transform doc:name="Payload as Json" >
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/json
---
payload]]></ee:set-payload>
</ee:message>
</ee:transform>
<logger level="INFO" doc:name="Result" message="#[payload]"/>
</flow>
</mule>
xml