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認証を行うアプリケーションの種類です。私はデスクトップアプリケーションの「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の仕組み、種類、実装方法、セキュリティ対策など、幅広い内容を網羅しています
Search
Recent Posts
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法
- RHEL系Linuxでリポジトリを一覧表示するコマンド(dnf repolist)
- .php以外の拡張子でPHPを動作させようとして発生したエラー「Got error 'Access to the script '/var/www/html/php.html' has been denied (see security.limit_extensions)'」の原因と対処方法