AlteryxでGoogleのAPIからデータを取得する
こんにちは、小澤です。
Alteryxでは標準で含まれるものや、Galleryからダウンロードできるものなどを含めて様々なデータソースにアクセスするためのコネクタが用意されています。
しかし、ここであらゆるデータソース全てへのコネクタが用意されているわけではありません(というかそれは不可能ですね...) そこで今回は自力でそういったものにアクセスする例を見ていきたいと思います。
DownloadツールとREST API
では、まずは今回の主役となるツールを見ていきます。 今回大活躍のツールはDownloadツールです。
これは、任意のURLからhttpでデータを取得するようなツールです。 REST APIを提供しているような環境だと、このツールの後にJSON ParseツールやXML Parseツール(今時無いと信じたい)でパースすることでデータの取得が可能です。
認証があるREST APIからのデータ取得
さて、Downloadツールでデータの取得が可能なことがわかりましたが、REST APIを利用したデータの取得には認証が必要な場合も多くあります。
REST APIで認証を必要とする場合、OAuth2などを使っていることがよくあるかと思います。 こういった場合ですと、認証もHTTPのアクセスで行えますので、同様にDownloadツールが利用可能です。
やってみる
さて、では早速やってみましょう。 今回は、Google Driveのファイル一覧を取得してみます。
認証の仕組み自体は今回の本筋とは外れるため、割愛します。 利用するにあたって、GoogleのClient ID, Client Secretを取得します。 また、今回はRefresh TokenからAccess Tokenを取得するので、そちらも事前に取得しておいてください。 認可の対象はGoogle Driveのファイル一覧取得となります。
ワークフローの全体像は以下のようになります。
Acess Tokenの取得
まず最初にRefresh TokenからAccess Tokenを取得します。
最初にText Inputツールで以下の項目を指定します。
- エンドポイントのURL : https://accounts.google.com/o/oauth2/token
- grant_type : refresh_token
- client_id : 取得したClient ID
- client_secret : 取得したClient Secret
- refresh_token : 取得したRefresh Token
今回は直接入力してますが、インターフェースツールを介することで、 Analytic Appやマクロにして利用者ごとに発行した必要な情報を入力してもらうなどの仕組みにもできます。
続いて、DownloadツールでAPIへのアクセスを行います。 設定は以下のようになります。
まず、BacisタブのURL > FieldにエンドポイントのURLを記載した列を指定します。
続いて、PayloadタブのHTTP Actionを「POST」に設定、And values from these fieldに必要な値のチェックを入れます。 grant_typeなどの固定値は、Text Inputから取得せずにFrom the following constant valuesに入れてもいいでしょう。
これでAccess Tokenが取得できるので、Json ParseツールレスポンスのJsonをパースします。
結果は以下のようになります。
最後にこのあと、token_typeとaccess_tokenを結合するため、横持ちに変換しています。
APIのエンドポイント情報付与
続いて、このアクセストークンを利用してGoogle Driveのファイルリストを取得する部分を見てみましょう。
と、その前に左下のText Inputツールと真ん中のAppend Fieldツールは対象のAPIのエンドポイント情報を付与しています。 今回は、Google Driveのファイル一覧なので、「https://www.googleapis.com/drive/v3/files」という値を持つ列を追加しています。
ファイルリスト取得
では、ファイルリストを取得します。
まずFormulaツールでAccess Tokenからリクエスト時に必要な情報を生成します。
Downloadツールでは、この値を使ってファイルリストを取得するAPIを叩きます。 BasicタブのURL > Fieldは、このAPIのエンドポイントを指定します。
HeaderタブでAuthorizationの情報を渡す指定をします。
PayloadタブはHTTP Actionに「GET」を指定しているのみとなります。
こちらの結果もJson Parseツールでパースします。 今回はファイル名のみにするため、その後Filterツールで項目名に「name」を含むもののみ取得しています。
結果は、機密性の高い情報も含まれるためお見せできませんが最後にファイル一覧が取得できることを確認します。
おわりに
今回は、AlteryxのDownloadツールとJson Parseツールを利用して、認証が必要なREST APIからデータの取得を行いました。
GoogleのAPIはOAuth2.0を使ったものになっているため、あらかじめ認可する対象を選んでトークンの発行を行っておけば、 同様の仕組みを提供している他のAPIでも同様のことが似たような手順でかのうになるかと思います。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。