【実装3分】StudioWeb で天気予報APIの結果をメール送信する☀☁☂

# はじめに

- StudioWeb が GA (General Availability)しました！GA=一般公開
- 本記事では StudioWeb を試したいとおもった方向けに、簡単なAPIで天気予報を取得してメールするロボの実装サンプルを紹介します。
- 紹介するロボットは Community や Free といった無償ライセンスで利用可能です。（Automation Cloud のアカウント登録は必要です。）

# StudioWeb の画面

![降水量確認.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/db6009f0-8ba7-6daa-7f3f-201daf72569f.jpeg)
- ***テンプレート***：目的にあったテンプレートを選んでワークフローの作成を開始できます。
- ***プロジェクト***：新規または既存のプロジェクトを選択してワークフローの作成を開始できます。
- ***オートメーション***：クロスプラットフォームのプロジェクトで作成されたオートメーションを実行できます。※自身がアクセス可能なオートメーションがすべて表示されますが、実行可能なオートメーションはクロスプラットフォームのものに限定されます。詳細や実行履歴の確認はすべてのオートメーションで可能です。
- ***実行***：ジョブの実行履歴を確認できます。
- ***コネクション***：作成済みのコネクションの確認、修正ができます。※コネクションの細かい設定やトリガーの設定等は Integration Service 側でしか確認、修正できません。

# 天気APIの実行 ～ メール送信 の実装

「新しいプロジェクト」をクリック
![降水量確認2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/0fc67893-28dd-ccd5-dece-af3b02a9ce3a.jpeg)
「タイムトリガー」を選択し、毎朝7時を設定してみます。
![降水量確認3.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/5cf5bb36-c627-1533-b056-506fc21bd2de.jpeg)

::: note
トリガーは以下の3種類
- 手動：字のごとく、毎回手動でオートメーションを実行する場合に選択します。
- タイム：パブリッシュすると Orchestrator にスケジュールが自動登録されます。
- イベント：パブリッシュすると Integration Service にスケジュールが自動登録されます。
:::

「HTTP要求」アクティビティを配置し、要求URLを指定します。
今回は[天気予報API](https://weather.tsukumijima.net/)をもちいて東京の天気を取得します。
![降水量確認4.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/748c3e86-58d4-db11-02cb-e5ede2769daf.jpeg)
受け入れ形式は「JSON」を指定します。
![降水量確認5.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/b352b57a-780f-7e89-0814-e1ed0ee63c49.jpeg)
本文形式も「application/json」とします。
![降水量確認6.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/cf2bcde0-c578-9d0c-e5ba-7545664af647.jpeg)
StudioWeb では変数名のこだわりがなければ出力プロパティは編集不要です。
![降水量確認7.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/ab697014-6fcf-9961-82ef-b064ea286fe6.jpeg)
「JSONを逆シリアル化」アクティビティを配置し、「＋」ボタンから変数を選択します。キャプチャでは、先のHTTP要求の出力にあった応答コンテンツを選択しています。選択後は、自動生成された変数が補完されます！***従来必須の変数作成と出力プロパティの設定が不要なため便利です！***
![降水量確認8.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/95cf95f0-395d-684d-0804-593f6ca4fc4a.jpeg)
{逆シリアル化で作成したJSONオブジェクト}.SelectToken("$..bodyText").ToString のログを記述し、画面上部の「実行」ボタンをクリックします。実行結果は画面右側にリアルタイムで表示されます。
![降水量確認9.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/62864de5-c661-dc2f-8299-1f27aebaad8d.jpeg)

::: note
（例）HTTP要求のレスポンスのJSONデータ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/af6d784e-7e2f-cbbb-074c-d7975b6db4d3.png)
本記事では bodyText フィールドの値を取得しています。
SelectToken の使い方は[***こちら***](https://www.umayadia.com/Note/Note020JSONPath.htm)の記事が参考になります。
:::

今日はすんなり成功してしまいましたが、デバッグの機能を補足します。
画面右上部に次の3つのボタンが在ります。
|アイコン | 機能 |
|:--:|:--:|
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/fa1c99f4-7966-79e2-0b11-9e4acdc08813.png) | データマネジャーを開く |
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/b4a2a5d8-bb3c-7e19-b4db-b8b4e4562d5a.png) | 「実行結果」を開く |
| ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/379a69f1-dd1c-0323-9677-c12686c84a97.png) | 「ウォッチ」パネルを開く |

3番目の***ウォッチパネルで任意の変数の中身を確認できます。***
ウォッチパネルでは確認したい変数の名前を指定する必要があり、自動生成された変数だと指定しづらいので、新たに変数を作成してセットしたいとおもいます。

データマネジャーにて、変数（変数名：応答コンテンツ）を新規作成します。
![降水量確認12.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/3dd8cd84-2455-b627-39ed-47d2ba379d35.jpeg)
HTTP要求の出力プロパティに作成した変数を指定した上で、ステップイン実行をおこないます。
***ウォッチパネルに応答コンテンツが指定された状態で「次のステップ」と処理を進めていくと、「HTTP要求」の処理を過ぎたところで変数の値が入ってくる***のを確認できます。
![降水量確認11.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/8db41fcc-7b32-92cb-925b-b1bf143e6648.jpeg)
値が無事取得できたので、最後に「メールを送信」アクティビティを配置・設定します。
![降水量確認13.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/af8e1f8f-f221-32c5-b3e5-df1c94b86b93.jpeg)
アカウントと送信先を指定し、本文に「{逆シリアル化で作成したJSONオブジェクト}.SelectToken("$..bodyText").ToString」を指定して実行してみます。
![降水量確認14.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/ff81c324-4a97-54d0-5319-d67eeb1bd481.jpeg)
Yeah! ちゃんと下書きフォルダにメールが入ってます(*´ω｀*)
今度は「下書きとして保存」を False に指定し、直接送信してみます。
![降水量確認15.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/d59fcd79-7064-53b4-689f-bb14210ebeb6.jpeg)
![降水量確認16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/c4b09119-94f4-8731-4863-1f8ba7dd0503.png)
バッチリ！( *´艸｀)

では、最後にパブリッシュして終わります。
![降水量確認16.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/934202fd-00af-07db-9ecd-0966137eb13d.jpeg)
Orchestrator のトリガー画面に有効なジョブとして登録されてるのが確認できます。
![降水量確認17.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3301444/e105e522-2ca9-31d1-9848-e4eb5b9b231f.jpeg)

# おわりに

いかがでしたでしょうか？
使いたいアクティビティがあれば検索して配置するだけ
（※Studio でお馴染みの「パッケージを管理」からのインストール不要）
見た目もシンプルで、出力プロパティを毎度指定する必要なし！
***ローカルファイルの操作が必要ない場合は、基本 StudioWeb でワークフローつくってもいいかも***、っておもいました('ω')
最後までお読みいただきありがとうございますm(_ _)m