QlikでGoogle APIを叩くまでの長い道のり【前編】― OAuth地獄を突破してRefresh Tokenを勝ち取るまで ―

目次

はじめに

Googleビジネスプロフィールって、店舗の検索数やクリック数、経路リクエスト数とかのデータが取れるんですが、
管理画面からCSVをダウンロードするのが地味に面倒なんですよね。
「これ、Qlikで自動取得できたら最高じゃん」と思ってAPIを叩き始めたら…

想像以上に OAuthの壁が高かった。

というわけで、この記事では「Google Cloud の設定 → Qlikでつなげる直前まで」を紹介します。

(後編ではQlik側の自動化・ダッシュボード化までやります)

ステップ1:Google Cloudでプロジェクトを作る

まずはGoogle Cloud Consoleで新しいプロジェクトを作成します。
その後、有効化するAPIはこの3つ👇

1️⃣ Business Profile Performance API

2️⃣ My Business Account Management API

3️⃣ My Business Business Information API

これを忘れると、後で「API not enable」地獄になります。

ステップ2:OAuth同意画面の設定

  • ユーザータイプ:外部
  • スコープ:https://www.googleapis.com/auth/business.manage
  • 公開状態本番

テスト中のままだと、認証が通っても後で401になります。
私はこれに2時間ほどやられました(笑)

ステップ3:OAuthクライアントを作成

  1. アプリタイプは「Webアプリ」
  2. リダイレクトURIに以下を追加
    https://connector.qlikcloud.com/callback
    https://developers.google.com/oauthplayground

この時点で、Client ID と Secret が発行されます。
あとで使うのでメモしておきましょう。

ステップ4:Refresh Tokenを自力で取得

ここが最大の難関。
QlikのOAuth2コネクタでは access_type=offline と prompt=consent が付けられません。(付け方がわかりません。やり方がわかる方、教えていただきたい!)

つまり通常の接続だと「1時間で切れる」トークンしか取れません。
なので、Google OAuth Playground に行って手動でRefresh Tokenを取ります

1.左の「Step 1」で scope に
https://www.googleapis.com/auth/business.manage
を入力
2.「Step 2」で「Exchange authorization code for tokens」クリック
3. 出てきたJSONの中に “refresh_token”: “1//xxxx…” があるのでコピー

これがあなたの “永遠の命トークン” です。

ステップ5:動作確認

発行した access_token を使って試しに叩いてみましょう

curl -X GET \
'https://businessprofileperformance.googleapis.com/v1/locations/{locationId}:fetchMultiDailyMetricsTimeSeries?dailyMetrics=BUSINESS_IMPRESSIONS_DESKTOP_SEARCH' \
-H 'Authorization: Bearer ya29….'

200 OK が返ってきたら成功です。
401 の場合は、トークンが古い or OAuth設定がテストモードのままです。

おわりに(前編まとめ)

ここまで来れば、Google API の準備は完了。
後編では:

  • Qlik Automation でアクセストークンを自動更新
  • APIを叩いてCSVに書き出す
  • ダッシュボードに反映

まで全部やります。

次回予告:「QlikでGoogleビジネスAPIを完全自動化してみた」

「401 Unauthorized」と戦った日々の記録、乞うご期待。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次