こんにちは。
前回の記事(前編はこちら)では、GoogleビジネスプロフィールAPIを使うための
認証設定とRefresh Token奪取ミッションを無事クリアしました。
後編では、いよいよQlik側で
- トークンを自動更新し、
- APIを叩いて、
- データをファイル化&可視化する
という、完全ノーコードの“自動収集パイプライン”を作ります。
ステップ1:アクセストークンを自動更新する
APIトークンは1時間で切れます。
そこで、Qlik Automationの「Call URL」ブロックを使って毎回新しいトークンを取得する仕組みを作ります。

| 設定項目 | 値 |
|---|---|
| URL | https://oauth2.googleapis.com/token |
| Method | POST |
| Headers | Content-Type: application/x-www-form-urlencoded |
| Body (Raw)(Params) | grant_type=refresh_token&client_id=【クライアントID】&client_secret=【クライアントシークレット】&refresh_token=【取得済みのrefresh_token】 |
※BodyはParamsに記載します。「Raw入力モード」にして1行で入力するのがコツです。改行入れるとQlikが怒ります
出力例
成功するとこんなJSONが返ります
{
"access_token": "ya29.a0ATi6K2...",
"expires_in": 3599,
"scope": "https://www.googleapis.com/auth/business.manage",
"token_type": "Bearer"
}access_token が次のAPI呼び出しで使うやつです。
ステップ2:APIを叩く(Raw API Requestブロック)
次に「Raw API Request」ブロックを追加して、
先ほどのトークンをヘッダーに渡します

{
"path": "/v1/locations/***************:fetchMultiDailyMetricsTimeSeries?dailyMetrics=BUSINESS_IMPRESSIONS_DESKTOP_SEARCH&dailyMetrics=BUSINESS_IMPRESSIONS_MOBILE_MAPS&dailyMetrics=BUSINESS_IMPRESSIONS_MOBILE_SEARCH&dailyMetrics=BUSINESS_IMPRESSIONS_DESKTOP_MAPS&dailyMetrics=WEBSITE_CLICKS&dailyMetrics=CALL_CLICKS&dailyMetrics=BUSINESS_DIRECTION_REQUESTS",
"method": "GET",
"headers": {
"Authorization": "Bearer {$.CallURL.response.access_token}"
}
}改行禁止。1行で書かないと謎の CURLE_BAD_FUNCTION_ARGUMENT が出ます。
ステップ3:日付範囲を変数で指定する
APIのパラメータに、
dailyRange.start_date.year / month / day
dailyRange.end_date.year / month / dayがあります。
これをQlik Senseシート側でDatepickerを使い、vStartDate と vEndDate 変数をAutomationに渡すと、「好きな日付範囲でAPIを叩ける」ようになります。
ステップ4:レスポンスをCSV化してS3に保存
APIのレスポンスはJSON形式ですが、
Write line to file on Amazon S3 ブロックを使えば即座にCSV化できます。
JSON → List objects → For each item → Write line
の3ステップ構成が鉄板です。
一度「fwrite(): supplied resource is not a valid stream resource」に遭遇しましたが、
それは ファイルストリームが閉じてるだけ。
前のブロックで “Open file” を入れればOKです。

ステップ5:Qlikアプリでグラフ化
S3に保存されたCSVをデータソースとしてロード。
ロードスクリプトで簡単に日付結合
LOAD
@1 as metrics,
@2 as 年,
@3 as 月,
@4 as 日,
@5 as 回数,
Date(MakeDate(年, 月, 日)) as 日付
FROM [s3://gmb-data/*.csv];このまま日次の推移グラフにすれば、
Googleビジネスプロフィールの見えないトラフィックを丸裸にできます
おまけ:この方法はGoogle以外でも使える
この設計は、実はほぼすべてのOAuth2 APIで流用可能です。
たとえば:
- YouTube Data API
- Search Console API
- Microsoft Graph API
- Notion / HubSpot / Slack API
Refresh Token があれば
Call URL で Access Token が再発行できる
これが本質。つまり…
Qlik が ETL / API クライアントになる
ということです。
まとめ
- Refresh Tokenを変数で管理
- Call URLで1時間ごと(Automation実行毎)にAccess Token更新
- Raw API Requestでデータ取得
- Write lineでS3にCSV保存
- Qlik Senseでビジュアライズ
✅ Python不要
✅ Cron不要
✅ 完全ノーコードでAPI自動収集
これが Qlik が API を殴り、
データを取り、可視化するまでの
“完全自動パイプライン” の全容です。
あなたの Qlik が
今日から API クライアントになります。
以上、後編でした
おつかれさまでした!


