Google Cloud で Google Ads API へのリフレッシュトークンを取得する際、oauth2l.exe の実行で発生したエラー「missing 'type' field in credentials」の対処方法

目次

スポンサードリンク

Google Ads API(Google広告API)にアクセスする際、Google広告側で発行した開発者トークンを元に、Google Cloud でOAuthのための認証情報を作成します。

認証情報は、Google Cloud の管理画面上で、OAuthクライアントを作成した後、oauth2l.exe というアプリケーションを使ってリフレッシュトークンを取得することになりますが、oauth2l.exe を実行した際に「missing ‘type’ field in credentials」というエラーが発生しました。

エラーの原因

エラーの原因は、OAuthクライアントをGoogle Cloudの管理画面で作成した際に選択したアプリケーションの種類にありました。

今回私が作成する予定のアプリケーションは、Webアプリケーションだったので、以下のようにウェブアプリケーションを選択してました。これば間違いでした。

OAuthクライアントの種類を選ぶ画面のスクリーンショット

この画面で指定するのは、これからあなたが作成するアプリケーションの種類ではなく、OAuth認証を行うアプリケーションの種類です。私はデスクトップアプリケーションの「oauth2l.exe」を使うので、ここでは「デスクトップアプリケーション」を選択すべきでした。

エラーの解消方法

OAuthクライアントIDをアプリケーションの種類を「デスクトップアプリケーション」にして、再度、生成しなおします。再生成したOAuthクライアントIDから、認証用の jsonファイルをダウンロードしておきましょう。

oauth2l.exe を実行すると、エラーにならず「Your browser has been opened to visit:」というメッセージが表示されます。Google Chromeが起動して権限を付与する画面が出てきます。権限付与が完了すると、下記コンソールにリフレッシュトークンが表示されるので、こちらをコピーして開発で使用しましょう。

PS C:\work\oauth2l_windows_amd64> .\oauth2l.exe fetch --credentials 認証用のjsonファイルのパス --scope adwords --output_format refresh_token

Your browser has been opened to visit:



OAuth徹底入門 セキュアな認可システムを適用するための原則と実践
OAuthという認証方式を深く理解し、Webアプリケーションに安全に実装するためのガイドブックです。OAuthの仕組み、種類、実装方法、セキュリティ対策など、幅広い内容を網羅しています