APIは「アプリケーション・プログラミング・インターフェイス」の略語で、Webスクレイピングとは違い、あらかじめネット上に公開してあるデータを収集します
今回の記事では、Power Automate Desktopを使用してAPIを操作する方法を解説します
尚、APIそのものについてはこの記事では詳細には解説しませんので、もっと詳細を知りたい方は他のサイト等を参考にされてください
実際に記事の内容を動かしてみて、APIというものを実感して頂けたら幸いです
一番簡単なパターン/登録不要
通常、APIを利用する際にはAPIを利用するサイトで登録を行い、ID等を事前に取得する必要があります
今回は、登録が必要なしで使えるAPIで操作を行います
その代わり、取得するデータも1行だけになります
Power Automate Desktopでは、JSON形式にてデータを取得し、さらにデータを成型してメッセージで表示します
実際のフローで使用するのは3つのアクションだけになります
使用するAPIは「zipcloud」の郵便番号検索APIになります
ポイント
データの取得
郵便番号検索APIのサイトで示してあるリクエストパラメーターの型式に従って、リクエスト文を指定の箇所に送り、データを取得します
データの変換
取得したデータはJSON形式になっており、人間の目では読みにくい内容になっています
こちらを郵便番号検索APIのサイトで示してあるレスポンスフィールドの階層に従い、人間の読める内容に変換します
リクエストURL及び指定項目
データの取得に使用するURLは以下のURLになります
https://zipcloud.ibsnet.co.jp/api/search
指定項目の中で必須は郵便番号/7桁のみです
試しに上の画像の(例)をそのままブラウザに入力してみます
https://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060
*「search」と「zipcode」の間に「?」が入力されている点にご注目ください(検索対象の郵便番号を変える場合には最後の7桁を変更します)
すると、次のように表示されます
今回は上記の画像の「address1/高知県」と「address2/南国市」をメッセージで表示します
実際のフロー
APIを操作するフローは3つのアクションで構成されます
アクション1:Webサービスを呼出します
zipcloudのサイトに掲示されているリクエストURL(https://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060)をそのまま使いデータを取得します
使用するアクションは「Webサービスを呼出します」になります
パラメーター:URLの箇所に上記のリクエストURLを入力します
このアクションを動かすと、サイトからJSON形式でデータを取得し、以下の変数にデータを格納します
下の画像は変数:WebServiceResponseに実際にJSON形式のデータが格納されたところです
アクション2:JSONをカスタムオブジェクトに変換
難しそうなアクション名のアクションですが、要は人間の目では読みにくいJSON形式のデータを読みやすく変換します
上記の画像のようにパラメーター:JSONにはデータが格納されている変数:WebServiceResponseを指定します
このアクションで変換されたデータは変数:JsonAsCustomObjectに格納されます
ここでAPIの取得データ・詳細を確認します
以下の画像はzipcloudの「レスポンス」の画面です
データの階層が2段階に分かれていて、1階層目が「status」「message」「results」の3つなのが分かります
そして2階層目が「results」の下の階層の実際のデータ項目/address1等になっています
ですので、このアクションで変換したデータも同じ構造になっています
上記の画像 はこのアクションで変換した内容を格納した変数:JsonAsCustomObjectの内容です
resutlsの項目の詳細表示をクリックすると次の内容になります
今回取得するのは1行だけですので、1行だけになっています
更に詳細表示をクリックします
次のアクションで上記画像の「address1」と「address2」をメッセージで表示します
アクション3:メッセージを表示
前アクションにて、データをJSON形式から人間の目で見える形に変えて格納した変数:JsonAsCustomObjectから、項目別に抜き出してメッセージを表示します
上記の内容の振り返りになりますが、取得したデータは2階層になっています(一部省略)
・results >>(address1,address2・・・)
上記の階層に対応した形で取得データを「address1」と「address2」に分けて抜き出します
・address1 ➡ %JsonAsCustomObject.results[0].address1%
・address2 ➡ %JsonAsCustomObject.results[0].address2%
実際に上記の2つの内容をアクションに反映したのが次の画像です
以上です➡次回に続く
コメントを残す