普段Teamsを使っている方、チャネルにニュースやトレンド情報などが流れてきたら便利ですよね!今回ASTERIA WarpでTwitterのツイートをTeamsに投稿するフローを作ってみました。
構築したフローは以下のように動作します。
動作シナリオ
フローを実行すると検索ワード入力欄が表示されますので検索ワードを入力します。
指定した検索ワードにヒットする過去一日のツイートを取得し、Teamsのチャネルに投稿します。投稿するメッセージにはツイートしたユーザ名、ツイート内容、ツイートへのリンクが含まれます。
準備したもの
今回はマルチセレクトオプションに含まれる以下二つのアダプタを使用します。
・Twitterアダプター
・Microsoft Teamsアダプター
また、TwitterとTeamsのそれぞれのユーザアカウントが必要です。Teamsは管理者アカウントが必要ですのでご注意ください。
フロー
構築したフローを以下に示します。
Mapper1
今回、取得するツイートは検索ワードと日時でフィルタリングします。最初のMapperコンポーネントではフローに入力された検索ワードと取得するツイートの日時をTwitterGetコンポーネントのSQLパラメータに渡します。過去一日のツイートを取得するため、日時には現在時刻から一日マイナスした日時を指定します。
TwitterGet
TwitterGetコンポーネントではTweetsテーブルからツイートを取得します。
フローではツイートの以下3つの情報を投稿します。
- ツイートしたユーザ名
- ツイート内容
- ツイートへのリンク
ツイートへのリンクURLはユーザのスクリーン名とツイートIDから以下のように構成できます。
https://twitter.com/<ユーザのスクリーン名>/status/<ツイートID>
これらの値を取得するため、SELECT文では以下のカラムとSQL関数を設定しています。
-
From_User_Name
: ツイートしたユーザ名 -
Text
: ツイート内容 : -
CONCAT('https://twitter.com/',From_User_Screen_Name,'/status/',ID)
: ツイートへのリンク
さらにフィルタ条件として以下のカラムを設定しています。
-
Lang
: ツイートの言語コード。ここでは日本のツイートのみを取得するため固定値「ja」を指定しています。 -
SearchTerms
: 検索ワード。フローの入力をSQLパラメータとして取得します。 -
Created_At
: ツイートが作成された時刻。一つ前のMapperコンポーネントで生成した時刻をSQLパラメータとして取得します。
Mapper2
次のMapperコンポーネントではTwitterGetコンポーネントで取得した3つの情報を1つの文字列にまとめます。Teamsに投稿するメッセージはリンクを含むためHTML形式で構成します。
MSTeamsSQLCall
MSTeamsSQLCallコンポーネントではSendMessageストアドプロシージャを使ってTeamsのチャネルにメッセージを投稿します。
ストアドプロシージャのパラメータは左から<チームID>, <チャネルID>, <コンテンツタイプ>, <メッセージの内容>です。今回はメッセージをSQLパラメータとして受け取ります。
SendMessageストアドプロシージャの使い方やチームID, チャネルIDの取得方法についてはこちらの記事をご参考ください。また、SendChatMessageストアドプロシージャを使ってチャットに送信することもできます(参考記事)。
おわりに
今回はASTERIA WarpでTwitterのツイートをTeamsに投稿するフローを作成しました。TwitterアダプタやMSTeamsアダプタは他にも様々な機能を持っていますのでいろいろ応用してみてください。