【連載】世界一わかりみの深いLogic Apps 〜 実装編 〜

こんにちは。サイオステクノロジーの川田です。
今回はAzureのLogic Appsを使ってTwitterコネクタ制御構文(条件分岐・繰り返し処理)の実装方法をご紹介します。
実装と言うと不安に思われる方もいますが、パズルのように組み合わせて処理を作ります。とても簡単でびっくりです!!

Logic AppsからTwitterコネクタでツイート検索や、タイムラインで取得した情報をSlackに投稿もしてみます!

前提条件

本記事は以下のアカウントを取得されていることが前提となります。

  • Azure
  • Twitter
  • Slack

それではやってみましょう★

ロジック アプリ デザイナー

開発ツールはロジック アプリ デザイナーを使います。
ロジック アプリ デザイナーを開くには「ロジック アプリ」 の左側にある「ロジック アプリ デザイナー」をクリックします。

クリックすると「一般的なトリガーで開始する」や「テンプレート」などたくさんあります。
一般的なトリガーからクリックしてもOKです。

トリガーとは?
「トリガー」はLogic Appsを起動するきっかけとなるものです。
例えば
  • 「繰り返し」の場合は10分間隔に実行する
  • Twitterの場合は「新しいツイートが投稿されたら」実行する
  • メールの場合は新しく受信されたら実行する

などがあります。

 

空のロジック アプリ

今回は空の状態からトリガーやアクションを選ぶ方法をご紹介します。
テンプレート」→「空のロジック アプリ」をクリックします。

 

クリックすると空の状態で表示されます。
検索ボックスからコネクタとトリガーを検索します。

トリガーの選択

それでは次に「トリガー」の選択をします。

先にアクションを選択してしまうと「アクションをトリガーとして使用することはできません。トリガーを選択してください。」というエラーメッセージが表示されます。
最初にトリガーを選択してください。

トリガーが選択されていることを確認してください。

 

たくさんのコネクタが存在するため、お目当てのものを見つけ出すのがとても大変です!
検索して探すことをおすすめします。

スケジュール選択

スケジュール」をクリックします。

スケジュールは定期的なスケジュールを設定し、実行することが可能です。
例えば1日1回決まった時間に実行したいなど色々ありますよね!こちらで設定が可能です。

 

スケジュールをクリックすると、「スライディング ウィンドウ」と「繰り返し」の2つが表示されます。
今回は「繰り返し」をクリックします。

ここでスケジュールの設定を行います。
下記の設定は3分間隔に実行されます。

実行履歴

ちゃんと実行されているか実行履歴で確認してみます。
3分間隔で実行されていることがわかります。
実行方法などは後ほどご説明します。

 

1日1回の設定方法

次は1日1回決まった時間の設定方法をご紹介します。
間隔と頻度を以下のように設定→「Add new parameter」クリックします。

間隔:1
頻度:日

設定したい項目にチェックを入れます。
今回は時間と分を設定したいため、「設定時刻(時間)」と「設定時刻(分)」にチェックを入れます。

「OK」ボタンはないので、チェックを入れたら周辺をクリックすると入力できるようになります。

 

それでは設定してみます。
1日1回10:50に実行したい場合は以下のように設定します。

設定時刻(時間):10
設定時刻(分):50
タイムゾーン:(UTC+09:00) 大阪、札幌、東京

実行履歴

それでは実行履歴で確認してみます。
10:50に実行されていることがわかりますね。
実行方法などは後ほどご説明します。

 

!注意!
繰り返しに「開始日時」が指定されていない場合は、初回時に保存をすると直ちに実行されます。
すぐ実行したくない場合は「開始日時」を指定してください。
開始日時」は「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)が表示されていることを確認してください。

複数アカウントを使用したい場合
Twitterのアカウントが複数ある場合も設定が可能です!
右下の「接続を変更してください」をクリックします。

こちらでどのアカウントを使用するか選択できます。
アカウントを追加するには「新規追加」をクリックして先ほどと同じ手順を行ってください!

 

トリガーの実行!

それではタイムラインを取得してみましょう!
変更したら、左上のオレンジ枠保存」を必ずしてください。スケジュールが設定されている場合は時間になると実行されます。
手動で実行する場合は水色枠トリガーの実行」→「実行」をクリックするとすぐに実行されます。

では手動で実行してみます!!!
実行」をクリックすると以下の画面になります。
少し時間がかかりますので、結果が表示されるまで待ちます。

時間が経つと実行結果が表示されます。実行が成功すると緑のチェックが付きます。

失敗した場合
成功は緑チェックが付きました。失敗した場合は画像のように赤の「!」が付きます。

エラーメッセージやエラーコードはクリックすると表示されます。

 

実行結果の確認

実行結果の内容を見てみます。見たい結果をクリックします。

今回はホームタイムラインの取得結果を見たいため「ホーム タイムラインの取得」をクリックします。
出力」→「本文」にタイムラインの情報が取得されていますので、正常に取得できていることがわかります。

過去の実行履歴確認方法
過去に実行した結果を確認したい場合もありますよね。
そのような場合は「概要」→「実行の履歴」から確認ができます。
クリックすると先ほどと同じ画面になります。

 

緑チェックのある実行結果の画面では処理を修正をしたり、アクションを追加したりすることはできません。
上にある「デザイナー」をクリックすると処理の修正や追加をすることができます。

※画面を変えてしまった場合は左側の「ロジック アプリ デザイナー」をクリックしてください。

以上が実行方法でした。

制御構文

Logic Appsには制御構文も使えます。
次は制御構文の実装方法をご紹介します。

処理を追加するには「新しいステップ」→「すべて」→検索ボックス「制御」と検索しクリックします。

 

「For each」や「スイッチ」、「条件」など色々とありますね!
今回は「For each」と「条件」の2つをご紹介します。

For each

それではループ処理でよく使われる「For each」を使ってみます。
For each」をクリックするとこのように処理を指定できます。

Twitterの動的なコンテンツは「もっと見る」をクリックするとたくさん表示されます。

 

先ほど取得したツイートの本文を回していきたいと思います。「本文」をクリックします。
次に「アクションの追加」をしていきます。

※この「本文」とは直前の「ホームタイムライン」で取得した「本文」になります。

ループで回しているツイートの本文をSlackに投稿していきたいと思います!
アクションの追加」→「すべて」→検索ボックスに「Slack」と検索し、クリックします。

 

今回はSlackにメッセージを投稿するため「メッセージの投稿」をクリックします。

Slack認証

Twitterと同様でSlackもサインインが必要です。
Slack ワークスペースにサインインし、ロジック アプリへのアクセスを承認してください。

 

  • Slackへ投稿方法

メッセージを投稿するには「チャンネル名」、「メッセージ テキスト」を入力します。
メッセージテキストは入力も可能で、動的なコンテンツも組み合わせることができます。
下の例はホームタイムラインで取得した3件の本文をループで回して、そのツイート内容をSlackに投稿しています。

チャンネル名:投稿したいチャンネル名を入力
メッセージ テキスト:投稿したい内容を入力

  • 投稿内容確認してみよう!

それではどのように投稿されているか見てみましょう!
まずは実行して、成功されていることを確認してください。

今回はホームタイムラインの3件を取得するようにしています。

Slackにちゃんと投稿されているかも確認します。

Slack画面が左側で取得したTwitterのホームタイムラインが右側です。
タイムラインは3件以上ありますが、指定した3件のみが投稿されています。
ツイートには改行も盛り込んでみましたがちゃんと投稿されています!

以上がFor eachの実装方法でした^^
次は条件をやってみます!

条件

条件分岐の実装方法をご紹介します。
条件」をクリックするとこのようになります。

今回は特定のユーザー情報を取得してSlackに投稿してみたいと思います。
取得したユーザーのフォロワー数が500以上であるかの条件に対し、Trueの場合とFalseの場合それぞれ「アクションの追加」をします。

例はSlackに投稿するメッセージを変えています。

 

  • Trueの場合

それでは投稿されているか見てみましょう。
フォロワー数は500以上なので、説明が投稿されております!!
(リンクがちょっと上手くいってないですが…)

実行結果

実行結果は実行された方に緑チェックが付きます。
今回はTrueが実行されたので、Trueに緑チェックがついています。

  • Falseの場合

Trueが実行されることは確認できました。
Falseの分岐を確認したいと思います。条件の数字を1000にしてみます。

 

想定通りに実行されたか見てみます。
「falseです。」と投稿されていますね\(^o^)/

以上が条件分岐の実装方法でした。

For eachと条件の両方使ってみる

では最後にFor eachと条件の両方を使ってみたいと思います。

やりたいこと

次はツイート検索をしたいと思います。
SIOSTechLab」で検索をし、4件抽出します。
抽出した本文をFor eachで回して条件に合致したツイートをリツイートしたいと思います。

 

ツイートの検索はアクションの「ツイートの検索」からできます。

検索テキスト:SIOSTechLab
結果の最大件数:4

 

これでツイートの検索は完了です。とっても簡単ですね~

次は検索で抽出したツイートの本文をループさせます。
【復習】For eachを使うには「制御」→「For each」をクリックします。

本文をループさせる処理はできました。

ループの中に条件分岐を実装していきたいと思います。
【復習】条件分岐を使うには「アクションの追加」→「制御」→「条件」をクリックします。

条件は取得したツイートに「【ブログ】」が含まれているかになります。

 

Trueの場合は【ブログ】が含まれているツイートをリツイートをします。
リツイートするには「ツイートID」が必要になります。本文から取得した「ツイートID」を指定すると該当のIDを受け取ることができます。
Falseの場合は【ブログ】が含まれていないツイートをSlackに投稿します。

それでは実行結果を確認してみます。

  • Twitter

Twitterのホームタイムラインを確認してみます。
【ブログ】が含まれているツイートが2件リツイートされていることがわかります!

  • Slack

Slackの指定したチャンネルを確認してみます。
【ブログ】が含まれていないツイートが2件投稿されていることがわかります!

最大取得件数は4件だったので、4件すべて実行されました\(^o^)/わ~い

まとめ

いかがでしたでしょうか?
プログラミング経験があまりない方でもパズルのように組み合わせて簡単に実装することができます^^
また、この処理にはループが必要だとLogic Appsが判断したら自動的に実装してくれます!親切!!簡単!!

今回はTwitterやSlackコネクタを使用しましたが、他にもたくさんのコネクタが存在しているのでぜひ試してみてください!

ありがとうございました( *´艸`)

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です