【5分でわかる】Microsoft Flowの始め方



#▼前置き
Microsoft Flowをこれから使用し始めようとしてる人向けの記事です。
この記事では「１つフローを作ってみる」というのをゴールとしています。
が、さらっと読むだけでもFlowを始めるのは簡単だというのを理解できます。

#▼Flowを始めるにあたって準備するもの
細かい制限や、実行回数の話は置いておいて、まず始めるにあたっての条件は一つだけ。
<font color="red">**Microsoftのアカウントがあること**</font>
に限ります。団体(企業、学校)、個人問いません。
少なくともWindowsPCを持っている方なら持っているはずです。

個人アカウントであれば無料プランとなり、月あたり750回のフローを実行できます。
※プランの購入はできます

Office365のライセンスであれば、
**`実行回数　＝　2000回 or 15,000回　×　ライセンス数(テナント内の)`**　となります。

↓詳細は下記を参考にしてください。
[Microsoft Flowの料金プランと制限について](https://japan.flow.microsoft.com/ja-jp/pricing/)

#▼Flowページに移動
##1.下記をクリック
[Microsoft Flowを始める](https://japan.flow.microsoft.com/ja-jp/)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/f63c88c2-39b2-e425-20a2-72bf5b009974.png)

##2.サインイン
サインインすると以下のページに移動します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/551f03d8-7c14-6141-dce4-2f115601f48f.png)


##3.「マイフロー」→「新規」→「一から作成」をクリックして作成画面に移動
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/42520a41-161c-5d67-5f0d-df11e9f8b230.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/edd46909-2ff2-998b-c977-959a9ca335a6.png)

##4. 作成画面の概要
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/3c345b54-6306-100f-b9f9-13604d5c02b7.png)

#▼今回は「特定のTwitterの投稿をGmailで通知する」フローを作成していきます
##1. 検索窓で「Twitterを検索」
「トリガー」→トリガー「新しいツイートが投稿されたら」
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/6aaf3666-2e77-4f75-2c68-8c8969c34c3e.png)

`トリガー`というのは名前の通りこの**フローが動くきっかけ**となる処理のことです。
その逆に`アクション`というのは、トリガーのあとに実行する処理になります。

なので今回は
`トリガー：Twitterのトリガー「新しいツイートが投稿されたら」`
`アクション：Gmailのアクション「メールを送信します」`
という構図になります。

それと`コネクタ`と呼ばれるものについてはサービス名と思ってよいです。
ここではTwitterやGmailがコネクタ名となります。
構造でいうと以下のイメージを持ってください。
`コネクタ`
　┣`トリガー`
　┗`アクション`

##2. 認証
各トリガーやアクションを選択すると接続認証画面になるので、ご自身の接続情報を入力してください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/9157d21d-bf91-d8db-49b9-9b309ec8c499.png)

##3. 作りこんでいきます

今回は「プログラミング」というの文字が含まれるツイートを対象にします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/26a93ecf-c6ec-4eaa-96d0-ebc3edda5ca8.png)

これだけでトリガーの設定は完了です。簡単ですね。

「新しいステップ」をクリックして、アクションを選択します。
先ほどと同じ様に検索窓で「Gmail」と検索し、今度はアクション「メールを送信します」を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/634343d4-2391-ac16-9bd8-9308ecb32cd2.png)

下記画面が表示されますので、宛先と件名を入れておきます。
※後述しますが、ここも動的に値を変更できます。
※このアクションでは複数の宛先に送るにはセミコロンで区切る必要があります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/23ac5c1d-be03-6949-136c-73d425b8eb6a.png)

ここからがFlow連携の醍醐味ですが、アクションの設定項目に`トリガー：Twitterのトリガー「新しいツイートが投稿されたら」`で取得した情報を設定することができます。

わかりやすくいうとこういうことです。
Gmailの`宛先`でも`件名`でも`本文`でも良いのですが、各テキストエリアをクリックしてフォーカスすると右側に`動的なコンテンツ`として`トリガー：Twitterのトリガー「新しいツイートが投稿されたら」`で取得できる情報の一覧が表示されます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/dc6b1d19-8899-c4ee-0c28-2a0d90f0508d.png)


あとはお分かりですね..??
これをメール内容に組み込んでいくことができます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/f817cf30-eeee-a3f6-1eef-5dc79d0b5295.png)

あとはこんな風に固定文字と合わせることも可能です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/e46df92c-a896-40de-bc2c-44783bbc9cdc.png)

※このアクションは不親切なことに`<br>`を入力しないと本文を改行してくれません...
OutLookコネクタのアクションだとその必要はないんですがね。。。


これで作成は終了です。

#▼テストしてみましょう

1.テストの実行
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/591636e6-2180-9d39-5622-0f1723cca7b7.png)

`トリガーアクションを実行する`をクリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/d2a6b6b9-bde6-2b61-4631-05972c07f82a.png)

成功すると下記のように表示されます
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/b84533ac-988b-f75f-8371-1424cd2a3726.png)

では`宛先`に設定したメールの受信BOXを見に行きましょう
来てました！成功です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/92cdc610-3081-0853-39c2-b3f3c94bb357.png)

これでフローの作成は終わりです。
疲れてない人は後述も見てってくださいね

#▼テストで取得したデータおよびアクションで送信した結果を確認しましょう

実際どういうデータを取得して来たの？
そもそも何件、取ってきてるの？
という疑問を持ったアナタ

<font color="red">**フローのテスト実行結果から見ることが可能**</font>です

この画面の「新しいツイートが投稿されたら」をクリックしてください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/77af4042-21e6-09f2-52ab-e711d6598dcf.png)

そうすると`入力`と`出力`がここから確認できます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/f7297906-4b14-daeb-999b-1d2a06bb283f.png)

今回、トリガーのパラメータには「プログラミング」を設定していたので、入力としては「プログラミング」が表示されます。

出力には、入力を元に取得して来た結果が表示されています。

```json:出力
{
  "TweetText": "RT @Masaya_S_W_M_C: なんか #Pyxel いじってたらゲームが完成した。タイトルは「Click Targets!」的をマウスでクリックしてる間は得点が入るので、できる限り早く的にマウスを合わせるのがコツです。それでスコアが決まります。裏技としてマウスの左クリ…",
  "TweetId": "1109687925879365633",
  "CreatedAt": "Sun Mar 24 05:26:33 +0000 2019",
  "CreatedAtIso": "2019-03-24T05:26:33.000Z",
  "RetweetCount": 1,
  "TweetedBy": "kitao",
  "MediaUrls": [],
  "TweetLanguageCode": "ja",
  "TweetInReplyToUserId": "",
  "Favorited": false,
  "UserMentions": [
    {
      "Id": 1031526776726376400,
      "FullName": "Masaya(Programming, Blog,Guitar)",
      "UserName": "Masaya_S_W_M_C"
    }
  ],
  "OriginalTweet": {
    "TweetText": "なんか #Pyxel いじってたらゲームが完成した。タイトルは「Click Targets!」的をマウスでクリックしてる間は得点が入るので、できる限り早く的にマウスを合わせるのがコツです。それでスコアが決まります。裏技としてマウスの左クリックは押しっぱなしにするという。\n#Python #プログラミング https://t.co/uZI11brLup",
    "TweetId": "1109436411663417344",
    "CreatedAt": "Sat Mar 23 12:47:07 +0000 2019",
    "CreatedAtIso": "2019-03-23T12:47:07.000Z",
    "RetweetCount": 1,
    "TweetedBy": "Masaya_S_W_M_C",
    "MediaUrls": [
      "https://pbs.twimg.com/ext_tw_video_thumb/1109435900046393344/pu/img/JaUwnne5cXgWBEOA.jpg"
    ],
    "TweetLanguageCode": "ja",
    "TweetInReplyToUserId": "",
    "Favorited": false,
    "UserMentions": [],
    "UserDetails": {
      "FullName": "Masaya(Programming, Blog,Guitar)",
      "Location": "",
      "Id": 1031526776726376400,
      "UserName": "Masaya_S_W_M_C",
      "FollowersCount": 64,
      "Description": "Masayaです。1997年生まれ。イスラエルの神を信じ、メシアはナザレのイェシュアだと信じています。 2018/12にプログラミングの勉強を開始した初心者。約二週間の開発期間を経て「プログラマー掲示板」を勉強開始2ヶ月でリリース。人工知能、特に自然言語処理に興味があり、それを専門にしようかと考えてます。",
      "StatusesCount": 907,
      "FriendsCount": 25,
      "FavouritesCount": 14,
      "ProfileImageUrl": "https://pbs.twimg.com/profile_images/1031528619263184896/AS364xje_normal.jpg"
    }
  },
  "UserDetails": {
    "FullName": "Takashi Kitao",
    "Location": "Tokyo",
    "Id": 18496061,
    "UserName": "kitao",
    "FollowersCount": 445,
    "Description": "Former game developer. Lead programmer of ZOE series. Developer of Pyxel, a retro game engine for Python | 元ゲーム開発者。ZOEシリーズメインプログラマー。レトロゲームエンジンPyxelの開発者",
    "StatusesCount": 2606,
    "FriendsCount": 99,
    "FavouritesCount": 528,
    "ProfileImageUrl": "https://pbs.twimg.com/profile_images/1736177120/catcake_icon_128x128_normal.png"
  }
}

```

見た感じ、「ツイート」「ツイート元」「ユーザー情報」の3部構成になっているようですね。
つまり１つのツイートとそれに付随する情報を取ってきているということになります。
玄人の方は**「Gmailコネクタに動的コンテンツの値を設定した時にApply for eachが強制的に表示されない時点でそうだろ」**って思うと思いますが初心者向けですので勘弁です

#▼実行頻度
おそらく今のままだと実行頻度が秒単位になっていてとかになっていて大量のメールが飛んで来ていると思います(笑)

実行頻度は以下のようにして設定することができます。
※トリガーの変更はかなり面倒です。。
作りこめば作りこむほど変更がだるくなります。。
何とかしてくださいMicrosoftさん。。

Gmailアクションに埋め込んだ`動的コンテンツ`を削除し、トリガー「新しいツイートが投稿されたら」を削除します。
※動的コンテンツの埋め込みを消さないと削除できません。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/a3c3e319-d04e-d748-6cad-0ec438142b11.png)

「繰り返し」を検索し、トリガー「繰り返し」選択します。
※コネクタ名だけでなく、トリガー名などでも検索できます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/a0ccb85d-c8a6-1ee2-0344-11b72475e0e0.png)

頻度を10分に設定し、`新しいステップ`で再度ツイッターのトリガーを設定し、Gmailへの目込みを設定すれば完了です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/35bbcb5d-fde7-fdc9-cbf8-e67efc307b11.png)

これで10分に１回の通知に収められると思います。
今回はこのくらいにしておきますね。

フロー自体のON/OFFは「マイフロー」から設定できるの覚えておいてください。
⇒「フローを有効/無効にする」
![image.png](https://qiita-image-store.s3.amazonaws.com/0/208615/20f68daa-cc81-bc25-680f-9fd48a522cb1.png)


#▼今後書く予定の記事
・IP制限環境でのFlow利用について
・カスタムコネクタの作成について
・実行回数について
・Common data serviceの利用について
・ExcelをDBのように使用する方法について
・Flowで用意されている標準関数の使い方

お楽しみに。。

#▼余談
現状、Flowの細かい所の説明って全然サイトに挙がってないんですよねー
Microsoftのサポートに聞いてもわからないことが結構ありましたからね。。(どんなやねん)
だんだん使用できるコネクタも増えてきたし、まともに使えるようになってきたFlowなので今後PowerAppsとかと合わせて普及するんじゃないか？と思ってます。

以上です。見てくださってありがとうございました ^^) _旦~~