【Power QueryでWeb APIを使ってみる①】APIキーってどこに入れるの?
こんにちは。aliceです。
Power QueryでWeb APIを使うときにAPIキーをどこにいれたらいいのかわからなかったので遊んでみました。
まず、Power QueryエディターでソースをAPIキーを取得できるように変更します。
[ApiKeyName="api_key"] ← ここの部分です。
Web.Contents("https://contoso.com/api/customers/get", [ApiKeyName="api_key"])
次に、APIキーは「Webコンテンツへのアクセス」ダイアログのWeb APIにあるキーに入れます。
ここからは、ホットペッパーAPIの大エリアマスタ(都道府県マスタ)を取得しながらPower QueryでのAPIキーの操作をやってみます。
こんな感じで取得してみました。
もしよかったらホットペッパーAPIキーを発行してみてくださいね。
登録はこちらからできますよ。
手順
まずはサクッと手順を確認していきます。
URLを取得する
まず、APIのリクエストURLを取得します。
これはホットペッパーAPIのサイトからコピーします。
Power QueryでWebに接続する
Power Queryを使って、①で取得したURLに接続します。
Power Queryエディターで編集する
Power Queryエディターを使ってソースを変更します。
そのあと、APIキーを設定します。
XMLテーブルを展開する
レスポンスをXMLテーブルとして受け取るので、展開してExcelのワークシートに表示します。
それでは、やっていきましょう!
1 URLを取得する
まず、接続先のURL(APIのリクエストURL)をコピーします。
今回は「大エリアマスタ」を取得したいので、まずはホットペッパーAPIのページを開いて、「大エリアマスタを検索」というリンクをクリックします。
すると、このようなページが開かれるのでURLをコピーします。
https://webservice.recruit.co.jp/hotpepper/large_area/v1/?key=sample
URLのコピーはこれでばっちりです。
続いてPower Queryを使っていきましょう。
2 Power QueryでWebに接続する
それでは、実際にPower Queryを使っていきましょう。
ここではPower QueryでWebに接続してPowerQueryエディターを開くまでを行います。
データの取得
まずはデータを取り込みます。
「データ」タブにある「データの取得」から「webから」をクリックします。
URLを貼り付ける
「webから」というダイアログが表示されるので、先程コピーしたURLを貼り付けます。
https://webservice.recruit.co.jp/hotpepper/large_area/v1/?key=sample
ちなみに、keyがsampleなのでエラーになります(。・∀・)ノ゙
keyはPower Queryエディターで設定するのでちょいとお待ちください。
接続する
「Webコンテンツへのアクセス」ダイアログが表示されるので、接続します。
データを変換する
「データの変換」をクリックします。
Power Queryエディターが開きました。
次はPower Queryエディターを使っていきましょう。
3 Power Queryエディターで編集する
先程の接続をPower Queryエディターで編集していきましょう。
まずソースをAPIキーを受け付けるように変更したあと、APIキーを設定します。
ソースを変更する
まずは、ソースの変更を行います。
適用したステップ「ソース」をクリックします。
すると、数式バーにソースが表示されます。
=Xml.Tables(Web.Contents("https://webservice.recruit.co.jp/hotpepper/large_area/v1/?key=sample"))
それを次のように書き換えます。
=Xml.Tables(Web.Contents("https://webservice.recruit.co.jp/hotpepper/large_area/v1/?", [ApiKeyName="key"]))
こんな感じです↓
「key=sample」の部分が「[ApiKeyName="key"]」に変わります。
イメージで言うとこんな感じかなぁ?
なんでそんなことするの?というと、こちら↓
こうすることによりセキュリティで保護されたURLに接続する(らしいです。)
<抜粋>
ここで1つ疑問。
Docsだと[ApiKeyName="api_key"]なのに、なんで[ApiKeyName="key"]になるのでしょう。
それは、パラメータ名が「key」だからです。
よって、[ApiKeyName="key"]となります。
なので、この部分が「key」ではなく、「APIkey」だったら、[ApiKeyName="APIkey"]となります。実際のソースでご確認くださいね。
それでは、話を戻して先に進みましょう。
資格情報を編集する
次にAPIキーの入力をしていきましょう。
数式バーでソースを変更したので「指定された資格情報が無効です。」と言われました💦
APIキーを入力するには「資格情報の編集」をクリックします。
すると、Webコンテンツへのアクセスというダイアログが表示されたので「Web API」をクリックします。
そうしたらAPIキーを入力します。
キーの部分にAPIキーを入力して接続をクリックします。
ちゃんとデータを取得できました!
ヤッター\( ̄︶ ̄*\))
あとは、XMLのテーブルを展開して完成です。
もう少しですね。
4 XMLテーブルを展開する
今までの操作でデータに接続できたので、取得したXMLテーブルを展開します。
さらに展開したテーブルをワークシートに表示させましょう。
もう少しで完成ですよ!
XMLテーブルを展開する
XMLテーブルを展開するには適用したステップの「変更された型」をクリックして、large_area列の「Table」をクリックします。
すると都道府県マスタが取得できました。
列を選択する
これでも十分なのですが、せっかくなので不要な列を非表示にしましょう。
「ホーム」タブの「列の選択」をクリックします。
すると、「列の選択」ダイアログが表示されるので不要な列のチェックを外します。
ここでは「service_area」と「large_service_area」のチェックを外します。
最後に「OK」をクリックします。
「code」列と「name」列だけになりました。
だいぶスッキリしましたね!
クエリの名前を変更する
さらに、クエリの名前を変更しましょう。
クエリの設定のプロパティから変更します。
「大エリアマスタ」という名前に変更してみました。
閉じて読み込む
Power Queryエディターでの操作が終わったので、最後に閉じて読み込みます。
シートに表示することができました!
完成です!
お疲れさまでした!
もしよかったらやってみてくださいね。おしまい。
この記事が気に入ったらサポートをしてみませんか?