しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

AdMobのAPI用のリフレッシュトークンを取得する

毎回忘れてしまうのでまとめました。
こちらは2022/08時点の情報なので最新情報は下URLをご参照下さい。

developers.google.com

まずはGoogle Cloud Platformからプロジェクトを作成します。

Google Cloud Platform

作成後は下URLからプロジェクトのAdMobのAPIを有効化します。

Google Cloud Platform

APIは下画面の「APIとサービスの有効化」から有効にできます。

次はAPIアクセスのためのリフレッシュトークンを取得します。
先程のページの「認証情報」の「CREATE CREDENTIALS」ボタンからOAuthクライアントIDを作成します。

アプリケーションの種類はデスクトップアプリを選択します。
名前は分かりやすい名前を付けます。

ここで取得したclient_idを使って下のURLにアクセスします。
アクセスするとAdMobのAPIへのアクセス許可を求められるので許可します。

https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/admob.readonly&access_type=offline&include_granted_scopes=true&redirect_uri=http://localhost:3000&response_type=code&client_id=[先程取得したclient_id]

許可をした後は下のURLに飛ばされます。
このURLのcodeの部分はリフレッシュトークン取得に使うのでメモしておきます。

http://localhost:3000/?code=XXXX&scope=https://www.googleapis.com/auth/admob.readonly%20https://www.googleapis.com/auth/adsense.readonly

今取得したcodeとclient_idとclient_secretを使って下URLにリクエストを送ります。

curl -d client_id=[先程取得したclient_id] -d client_secret=[先程取得したclient_secret] -d redirect_uri=http://localhost:3000 -d grant_type=authorization_code -d code=[先程メモしたcode] https://accounts.google.com/o/oauth2/token

レスポンスは下のとおりです。
refresh_tokenの部分にリフレッシュトークンが入ります。

{
  "access_token": "XXX",
  "expires_in": 3599,
  "refresh_token": "XXX",
  "scope": "https://www.googleapis.com/auth/admob.readonly https://www.googleapis.com/auth/adsense.readonly",
  "token_type": "Bearer"
}