(O+P)ut

ITエンジニアのアウトプット録



(O+P)ut


【GoogleAnalyticsAPI】リアルタイムユーザをcurlで取得する

取得結果

GoogleAnalyticsの下の数字部分をcurlコマンドで取得しました。
f:id:mtiit:20190314150030p:plain

curlコマンドの実行結果

...
[{"name":"rt:activeUsers",
"columnType":"METRIC",
"dataType":"INTEGER"}],
"totalsForAllResults":{"rt:activeUsers":"9"},
"rows":[["9"]]}

MacUNIX系であればcurlコマンドが標準実装されているのでお手軽に使えます。

流れ

最終的に発行するコマンドは以下です。

curl \
  'https://www.googleapis.com/analytics/v3/data/realtime?ids=ga%3A<ビューID>&metrics=rt%3AactiveUsers' \
  --header 'Authorization: Bearer <アクセストークン>' \
  --header 'Accept: application/json' \
  --compressed

要はビューIDアクセストークがあれば冒頭の結果を取得できます。

ビューID

自分のブログのビューIDを確認します。

GoogleAnalyticsの設定>にある以下の部分です。
設定>アカウント>プロパティ>ビュー>ビューの設定 で確認できます。
f:id:mtiit:20190314151800p:plain

私の環境だと9桁の数字でした。

以下サイトで動作確認もできます。

右側に以下のような箇所があるので
f:id:mtiit:20190314152608p:plain
ids欄に ga:XXXXXXX (Xにビューコードを入れる)
metrics欄に rt:activeUsers
とした状態でEXECUTEボタンを押下してください。OAuth認証画面が開き、認証に通るとJSONの出力結果が表示されます。

アクセストーク

認証部分を省略すべく、以下サイトを参考にアクセストークンを取得します。

ただし 使用するAPIAnalytics APIです。
f:id:mtiit:20190314153038p:plain

また、認証用のサービスもGoogleAnalyticsなので以下に変更してください。

https://www.googleapis.com/auth/analytics

リアルタイムユーザを取得

アクセストークンが取得できれば以下の<ビューID>と<アクセストークン>を置き換えてターミナルから実行してください。<>記号も不要です。

curl \
  'https://www.googleapis.com/analytics/v3/data/realtime?ids=ga%3A<ビューID>&metrics=rt%3AactiveUsers' \
  --header 'Authorization: Bearer <アクセストークン>' \
  --header 'Accept: application/json' \
  --compressed

ちなみにアクセストークンを取得した際の

$ curl -d client_id=...
{
  "access_token": "XXX",
  "expires_in": 3600,
  "refresh_token": "XXX",
  "scope": "https://www.googleapis.com/auth/analytics",
  "token_type": "Bearer"

にあるように3600秒、つまり1時間経つとアクセストークンの値は無効になります。

更新したい場合はrefresh_tokenを用いて以下コマンドで新たなアクセストークンを発行できることも併せて記載しておきます。

curl -d "client_id=XXX&client_secret=XXX&refresh_token=XXX&grant_type=refresh_token" https://accounts.google.com/o/oauth2/token

以上、同様の事を実施したい方の参考になれば幸いです。