こんにちは。サイオステクノロジーの川田です。
今回はAzureのLogic Appsを使ってTwitterコネクタや制御構文(条件分岐・繰り返し処理)の実装方法をご紹介します。
実装と言うと不安に思われる方もいますが、パズルのように組み合わせて処理を作ります。とても簡単でびっくりです!!
Logic AppsからTwitterコネクタでツイート検索や、タイムラインで取得した情報をSlackに投稿もしてみます!
それではやってみましょう★
ロジック アプリ デザイナー
開発ツールはロジック アプリ デザイナーを使います。
ロジック アプリ デザイナーを開くには「ロジック アプリ」 の左側にある「ロジック アプリ デザイナー」をクリックします。
クリックすると「一般的なトリガーで開始する」や「テンプレート」などたくさんあります。
一般的なトリガーからクリックしてもOKです。
例えば
- 「繰り返し」の場合は10分間隔に実行する
- Twitterの場合は「新しいツイートが投稿されたら」実行する
- メールの場合は新しく受信されたら実行する
などがあります。
空のロジック アプリ
今回は空の状態からトリガーやアクションを選ぶ方法をご紹介します。
「テンプレート」→「空のロジック アプリ」をクリックします。
クリックすると空の状態で表示されます。
検索ボックスからコネクタとトリガーを検索します。
トリガーの選択
それでは次に「トリガー」の選択をします。
最初にトリガーを選択してください。
トリガーが選択されていることを確認してください。
たくさんのコネクタが存在するため、お目当てのものを見つけ出すのがとても大変です!
検索して探すことをおすすめします。
スケジュール選択
「スケジュール」をクリックします。
スケジュールは定期的なスケジュールを設定し、実行することが可能です。
例えば1日1回決まった時間に実行したいなど色々ありますよね!こちらで設定が可能です。
スケジュールをクリックすると、「スライディング ウィンドウ」と「繰り返し」の2つが表示されます。
今回は「繰り返し」をクリックします。
ここでスケジュールの設定を行います。
下記の設定は3分間隔に実行されます。
1日1回の設定方法
次は1日1回決まった時間の設定方法をご紹介します。
間隔と頻度を以下のように設定→「Add new parameter」クリックします。
頻度:日
設定したい項目にチェックを入れます。
今回は時間と分を設定したいため、「設定時刻(時間)」と「設定時刻(分)」にチェックを入れます。
「OK」ボタンはないので、チェックを入れたら周辺をクリックすると入力できるようになります。
それでは設定してみます。
1日1回10:50に実行したい場合は以下のように設定します。
設定時刻(分):50
タイムゾーン:(UTC+09:00) 大阪、札幌、東京
すぐ実行したくない場合は「開始日時」を指定してください。
「開始日時」は「Add new parameter」から入力が可能です。
「開始日時」のフォーマットは以下の通りです。
2022-02-24T15:00:00Z
初回に一度「開始日時」を保存してから「開始日時」を消して再度保存してもトリガーが実行されることはありません。
以上がトリガーの設定方法でした。
アクションの選択
トリガーを設定したら次はアクションの設定になります。
例えば
- ツイートを検索する
- メールを送信する
- Slackに投稿する
などたくさんあります。
それでは選択してみましょう!
新しいステップ
アクションを選択するには、「新しいステップ」をクリックします。
クリックすると「操作を選択してください」と表示されます。
多くのコネクタがあるため表示されるのに少し時間がかかる場合があります。
ではTwitterコネクタを使用していきます。
Twitterコネクタ
「すべて」→検索ボックスに「twitter」と入力します。
今回はタイムラインの取得をしたいと思います。
アクションから下にスクロールして「ホームタイムラインの取得」をクリックします。
- Twitterサインイン方法
Twitterにアクセスするためには、サインインをしなくてはなりません。
画面に従ってサインインを行ってください。
接続名:表示名になります。今回は「twitter_test」とします。
Authentication Type:「Use default shared application」を選択します。
情報を入力し「サインイン」をクリックすると、Twitterの認証画面に遷移します。
Twitterのログイン情報を入力し、「連携アプリを認証」をクリックしてください。
これでTwitterとの連携はOKです^^
左下に先ほど入力した接続名(例:twitter_test)が表示されていることを確認してください。
右下の「接続を変更してください」をクリックします。
こちらでどのアカウントを使用するか選択できます。
アカウントを追加するには「新規追加」をクリックして先ほどと同じ手順を行ってください!
トリガーの実行!
それではタイムラインを取得してみましょう!
変更したら、左上のオレンジ枠「保存」を必ずしてください。スケジュールが設定されている場合は時間になると実行されます。
手動で実行する場合は水色枠「トリガーの実行」→「実行」をクリックするとすぐに実行されます。
では手動で実行してみます!!!
「実行」をクリックすると以下の画面になります。
少し時間がかかりますので、結果が表示されるまで待ちます。
時間が経つと実行結果が表示されます。実行が成功すると緑のチェックが付きます。
エラーメッセージやエラーコードはクリックすると表示されます。
実行結果の確認
実行結果の内容を見てみます。見たい結果をクリックします。
今回はホームタイムラインの取得結果を見たいため「ホーム タイムラインの取得」をクリックします。
「出力」→「本文」にタイムラインの情報が取得されていますので、正常に取得できていることがわかります。
そのような場合は「概要」→「実行の履歴」から確認ができます。
クリックすると先ほどと同じ画面になります。
緑チェックのある実行結果の画面では処理を修正をしたり、アクションを追加したりすることはできません。
上にある「デザイナー」をクリックすると処理の修正や追加をすることができます。
※画面を変えてしまった場合は左側の「ロジック アプリ デザイナー」をクリックしてください。
以上が実行方法でした。
制御構文
Logic Appsには制御構文も使えます。
次は制御構文の実装方法をご紹介します。
処理を追加するには「新しいステップ」→「すべて」→検索ボックス「制御」と検索しクリックします。
「For each」や「スイッチ」、「条件」など色々とありますね!
今回は「For each」と「条件」の2つをご紹介します。
For each
それではループ処理でよく使われる「For each」を使ってみます。
「For each」をクリックするとこのように処理を指定できます。
Twitterの動的なコンテンツは「もっと見る」をクリックするとたくさん表示されます。
先ほど取得したツイートの本文を回していきたいと思います。「本文」をクリックします。
次に「アクションの追加」をしていきます。
※この「本文」とは直前の「ホームタイムライン」で取得した「本文」になります。
ループで回しているツイートの本文をSlackに投稿していきたいと思います!
「アクションの追加」→「すべて」→検索ボックスに「Slack」と検索し、クリックします。
今回はSlackにメッセージを投稿するため「メッセージの投稿」をクリックします。
- Slackへ投稿方法
メッセージを投稿するには「チャンネル名」、「メッセージ テキスト」を入力します。
メッセージテキストは入力も可能で、動的なコンテンツも組み合わせることができます。
下の例はホームタイムラインで取得した3件の本文をループで回して、そのツイート内容をSlackに投稿しています。
メッセージ テキスト:投稿したい内容を入力
- 投稿内容確認してみよう!
それではどのように投稿されているか見てみましょう!
まずは実行して、成功されていることを確認してください。
今回はホームタイムラインの3件を取得するようにしています。
Slackにちゃんと投稿されているかも確認します。
Slack画面が左側で取得したTwitterのホームタイムラインが右側です。
タイムラインは3件以上ありますが、指定した3件のみが投稿されています。
ツイートには改行も盛り込んでみましたがちゃんと投稿されています!
以上がFor eachの実装方法でした^^
次は条件をやってみます!
条件
条件分岐の実装方法をご紹介します。
「条件」をクリックするとこのようになります。
今回は特定のユーザー情報を取得してSlackに投稿してみたいと思います。
取得したユーザーのフォロワー数が500以上であるかの条件に対し、Trueの場合とFalseの場合それぞれ「アクションの追加」をします。
例はSlackに投稿するメッセージを変えています。
- Trueの場合
それでは投稿されているか見てみましょう。
フォロワー数は500以上なので、説明が投稿されております!!
(リンクがちょっと上手くいってないですが…)
- Falseの場合
Trueが実行されることは確認できました。
Falseの分岐を確認したいと思います。条件の数字を1000にしてみます。
想定通りに実行されたか見てみます。
「falseです。」と投稿されていますね\(^o^)/
以上が条件分岐の実装方法でした。
For eachと条件の両方使ってみる
では最後にFor eachと条件の両方を使ってみたいと思います。
ツイートの検索はアクションの「ツイートの検索」からできます。
結果の最大件数:4
これでツイートの検索は完了です。とっても簡単ですね~
次は検索で抽出したツイートの本文をループさせます。
【復習】For eachを使うには「制御」→「For each」をクリックします。
本文をループさせる処理はできました。
ループの中に条件分岐を実装していきたいと思います。
【復習】条件分岐を使うには「アクションの追加」→「制御」→「条件」をクリックします。
Trueの場合は【ブログ】が含まれているツイートをリツイートをします。
☞リツイートするには「ツイートID」が必要になります。本文から取得した「ツイートID」を指定すると該当のIDを受け取ることができます。
Falseの場合は【ブログ】が含まれていないツイートをSlackに投稿します。
それでは実行結果を確認してみます。
Twitterのホームタイムラインを確認してみます。
【ブログ】が含まれているツイートが2件リツイートされていることがわかります!
- Slack
Slackの指定したチャンネルを確認してみます。
【ブログ】が含まれていないツイートが2件投稿されていることがわかります!
最大取得件数は4件だったので、4件すべて実行されました\(^o^)/わ~い
まとめ
いかがでしたでしょうか?
プログラミング経験があまりない方でもパズルのように組み合わせて簡単に実装することができます^^
また、この処理にはループが必要だとLogic Appsが判断したら自動的に実装してくれます!親切!!簡単!!
今回はTwitterやSlackコネクタを使用しましたが、他にもたくさんのコネクタが存在しているのでぜひ試してみてください!
ありがとうございました( *´艸`)