LoginSignup
10
0

More than 1 year has passed since last update.

普段Teamsを使っている方、チャネルにニュースやトレンド情報などが流れてきたら便利ですよね!今回ASTERIA WarpでTwitterのツイートをTeamsに投稿するフローを作ってみました。

構築したフローは以下のように動作します。

動作シナリオ

フローを実行すると検索ワード入力欄が表示されますので検索ワードを入力します。

image.png

指定した検索ワードにヒットする過去一日のツイートを取得し、Teamsのチャネルに投稿します。投稿するメッセージにはツイートしたユーザ名、ツイート内容、ツイートへのリンクが含まれます。

image.png

準備したもの

今回はマルチセレクトオプションに含まれる以下二つのアダプタを使用します。

Twitterアダプター
Microsoft Teamsアダプター

また、TwitterとTeamsのそれぞれのユーザアカウントが必要です。Teamsは管理者アカウントが必要ですのでご注意ください。

フロー

構築したフローを以下に示します。

image.png

Mapper1

今回、取得するツイートは検索ワードと日時でフィルタリングします。最初のMapperコンポーネントではフローに入力された検索ワードと取得するツイートの日時をTwitterGetコンポーネントのSQLパラメータに渡します。過去一日のツイートを取得するため、日時には現在時刻から一日マイナスした日時を指定します。

image.png

TwitterGet

TwitterGetコンポーネントではTweetsテーブルからツイートを取得します。

image.png

フローではツイートの以下3つの情報を投稿します。

  1. ツイートしたユーザ名
  2. ツイート内容
  3. ツイートへのリンク

ツイートへのリンクURLはユーザのスクリーン名とツイートIDから以下のように構成できます。

https://twitter.com/<ユーザのスクリーン名>/status/<ツイートID>

これらの値を取得するため、SELECT文では以下のカラムとSQL関数を設定しています。

  1. From_User_Name : ツイートしたユーザ名
  2. Text : ツイート内容 :
  3. CONCAT('https://twitter.com/',From_User_Screen_Name,'/status/',ID) : ツイートへのリンク

さらにフィルタ条件として以下のカラムを設定しています。

  1. Lang : ツイートの言語コード。ここでは日本のツイートのみを取得するため固定値「ja」を指定しています。
  2. SearchTerms : 検索ワード。フローの入力をSQLパラメータとして取得します。
  3. Created_At : ツイートが作成された時刻。一つ前のMapperコンポーネントで生成した時刻をSQLパラメータとして取得します。

Mapper2

次のMapperコンポーネントではTwitterGetコンポーネントで取得した3つの情報を1つの文字列にまとめます。Teamsに投稿するメッセージはリンクを含むためHTML形式で構成します。

image.png

MSTeamsSQLCall

MSTeamsSQLCallコンポーネントではSendMessageストアドプロシージャを使ってTeamsのチャネルにメッセージを投稿します。

image.png

ストアドプロシージャのパラメータは左から<チームID>, <チャネルID>, <コンテンツタイプ>, <メッセージの内容>です。今回はメッセージをSQLパラメータとして受け取ります。

SendMessageストアドプロシージャの使い方やチームID, チャネルIDの取得方法についてはこちらの記事をご参考ください。また、SendChatMessageストアドプロシージャを使ってチャットに送信することもできます(参考記事)。

おわりに

今回はASTERIA WarpでTwitterのツイートをTeamsに投稿するフローを作成しました。TwitterアダプタやMSTeamsアダプタは他にも様々な機能を持っていますのでいろいろ応用してみてください。

10
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
0