Windows10以降の標準ソフト(アプリ)であるPower Automate Desktop(PAD)で、よく利用されている機能のひとつが、Web API連携です。
API(Application Programming Interface)とは、簡単にいえば、プログラムの一部機能を、他のプログラム上で利用できるように共有することです。「なにやらむずかしそう」と感じるかもしれませんが、APIという単語は意識していなくても、日常生活で無意識に活用する場面は、案外多いものです。
家計簿口座に銀行やクレジットカードの取引履歴を連携させている人は、各金融機関APIを家計簿ソフトに連携させていますし、ChatGPTをExcel連携させた人は、作業途中で「APIキー」を取得しているはずです。
使用頻度が高いAPIなら、キー取得方法や連携開始フォームなどの情報が公開されていますが、PADフローをくむと「私だけが、自分の仕事に使えるAPI」を、ノーコード or ローコードで手に入れられます。 今回は、気象庁公式ホームページから、”ユーザー登録不要、”無料”で取得できる天気予報情報を、PADを使って、Excelワークシートへ自動取得してみましょう。
日々変わる最新の気象予報情報は、気象庁HPからPADを使ってExcelへラクラク自動取得できます
幼少期、夏休み最終日に、親にしかられながら30日-40日分の絵日記お天気情報をでっちあげたのは、「昭和人」まで。ナウなヤングは(←これ、昭和死語です!!)、Webでサクッと調べて、5分で仕上げてしまうものです。学校では禁止されながら、絵日記そのものもChatGPTにおまかせしてしまったり…。
それはさておき、(過去ふりかえりもふくめ)気象情報へのアクセスが、近年はWebで容易にできるようになりました。2021年頃からは、非公式ながら、気象庁HPからもJSONデータを取得できるようになった(*)ため、ここで取得した情報を、自社ビジネスツールと連携させた事例が、SNSやブログなどでも多数紹介されています。
記事によっては、「天気予報API」と表現するものもありますが、正式なものではありません。仕様の継続性や運用状況お知らせなど約束されない前提で、気象庁HP利用規約にそって、課金や登録なしに、「ご自由にお使いください」というあつかいのようです。
今回は、ためしに、ビジネスへも大きな影響をもたらしそうな台風上陸直前の予報を、PADからExcelへ自動取得してみました。
フロー生成手順については、Web Internet Watch『「Power Automate Desktop」で気象庁から天気を取得しExcelへ自動で書き込む』清水 理史氏 2021年4月19日公開 も参考にさせていただきました。
具体的には、気象庁HPのこの部分です。
URL末尾のcode=130000 が、国土交通省都道府県コード(PrefCode)をあらわしており、270000にかえれば大阪府、400000にかえれば福岡県の気象情報へアクセスできます。
フロー作成前に、あらかじめExcelでこのような入力フォームを用意しておきます。
その後、今回PADで作成したフローを実行すると、気象庁公式HPより、東京地方の当日・翌日予報が、Excelへ自動転記されました。
タイマーをセットするなどして、これを毎日自動取得しておけば、宿題を最終日までしない人でも、土壇場であわてなくてすみそうですね。
天気予報自動取得フローの基本3アクションは、PADを使ったWeb API連携の基本となる流れです
この天気予報取得に使ったフローは、以下のとおりです。
この中で、とくに押さえる3つのアクションは、(1)JSON取得、(2)カスタムオブジェクト型への変換、(3)Excelワークシートへの書き込みです。各アクションについて、くわしくみてみましょう。
(1)JSON取得
「JSON(JavaScript Object Notation)」とは、CSVやXMLにかわる、機械取り込みテキスト・フォーマットです。
KDDIウェブコミュニケーションズのブログ「JSON」とは?がとてもわかりやすい解説記事なので、ご参照されるとよいでしょう。
今回の事例(天気予報自動取得)では、気象庁が”正式にはAPIではない”といいながら、JSONデータを無償一般公開しはじめたことにより、PADラクラク取り込みできるようになったのです。
たとえば、パソコンのWebブラウザから
https://www.jma.go.jp/bosai/forecast/#area_type=offices&area_code=130000 というURLを入力すると、前章の東京地方天気概況ページが表示されますが、おなじブラウザへ、https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json と打ち込むと、天気概況ページを構成する文字データが、JSON形式で表示されます。
PADでは、「Webサービスを呼び出します」というアクションを使って、このJSONデータをフローに取り込みます。
(2)カスタムオブジェクト型への変換
PAD「カスタムオブジェクト型変数」は、JSON形式データを読み込み、PADであつかえるようにする変数です。
JSONは、PADからは単なるテキスト値と認識されます。
カスタムオブジェクト変数におきかえることによって、「名前(key)と値」として、PAD内で他のアクションへ代入するような活用ができるようになります。
(3)Excelワークシートに書き込む
最後に、Webから取得した全情報の中から、必要な部分だけ「Excelワークシートに書き込む」アクションを設定します。
気象庁JSONには、天気概況以外にも降水確率や気温、湿度など、さまざまな予報が含まれます。JSONの中身を確認して、必要な情報をExcelシートに取り出しますが、ここでは「調査日当日の東京地方の天気概況(くもり 時々 雨 所により 昼過ぎ から 雷を伴い 激しく 降る)をワークシートへ書き込みましょう。
(2)に「カスタムオブジェクト型」へ変換したJsonAsCustomObject変数全体の中から、
[’timeSeries’][0]=JSON取得日当日
[’areas’][0]=この(東京都の)場合、伊豆諸島などを除く”東京地方”のこと
[’weathers’][0]=天気概況文字列
をExcelワークシートの所定位置に書き込む設定をすると、調査日当日の天気概況がExcelへ取り出せます。
今回のフローでは、調査日当日と翌日の天気概況を自動取得するように、「Excelワークシートに書きこむ」アクションを2つ追加しました。
まとめ
気象庁JSON活用は、Web-Excel連携フローの好サンプル。JSON取得→カスタムオブジェクト型変換→Excel書き込みの3ステップを、いろいろ試してみましょう!
今回は、”登録不要、無課金”で、だれでも使える気象庁HPからのJSONデータを、API的に活用しました。
この3ステップは、他のWebサイトから提供されるJSONデータでPADフローを作成する場合にも、基本となるアクションです。入力するデータや出力形式を、いろいろアレンジしてみましょう。
Excelへ最終的に書き込む内容差異により、フローの組み方や、JSONデータの使い方は多少異なりますが、基本の3ステップ、つまり
(1)JSON取得
(2)カスタムオブジェクト型変数に変換
(3)Excelワークシートに書き込み
はかわりません。
この流れを意識して、他の天気情報や金融情報、交通情報などの取り込みに応用すれば、「自分に必要な情報だけ自動取得」プログラムが、PADでラクラク組めるようになりますよ。