見出し画像

【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キーの操作をやってみます。

こんな感じで取得してみました。

画像1


もしよかったらホットペッパー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エディターでの操作が終わったので、最後に閉じて読み込みます。


シートに表示することができました!


完成です!
お疲れさまでした!

もしよかったらやってみてくださいね。おしまい。


この記事が気に入ったらサポートをしてみませんか?