概要
- Rubyを使って、自動でGoogleシートに記述するプログラムを作成しましたが、その際にGoogle APIのトークンを取得するのに手間取りました。
- こちらに詳しく情報をまとめましたので、参考にして頂ければ感謝です。
手順
1.取得に使うGoogleアカウントでログイン
2.Google Developers Consoleにアクセス
3.API プロジェクトを作成
- プロジェクト名を入れて、作成
4.左メニューのライブラリ -> 「Drive API」を選択
- 「有効にする」をクリック
- 「認証情報を作成」をクリック
- API を呼び出す場所を選択
- アクセスするデータの種類を選択
- 「必要な認証情報」をクリック
- 承認済みのJavaScript生成と承認済みのリダイレクトURIに
http://localhost
と入力する。
- ユーザーに表示するサービス名を入力
- クライアント情報をダウンロード
- ダウンロードしたファイルをjsonファイルをテキストエディタで開く。
- 見やすいように整形する
5.クエリパラメータを追加したURLにブラウザでアクセス
-
以下のURLにクエリパラメータを追加してブラウザでアクセスする
https://accounts.google.com/o/oauth2/auth -
例
https://accounts.google.com/o/oauth2/auth
?client_id=[4で取得したクライアントID]
&redirect_uri=[4で設定したリダイレクトURI]
&scope=https://www.googleapis.com/auth/drive (使用したいサービスのAPIにスコープする。今回はGoogleドライブ)
&response_type=code (認証をコードとして出力)
&approval_prompt=force (認証をスキップしない)
&access_type=offline (オフラインでAPIを使用=リフレッシュキーを発行)
- 実際に送る値
https://accounts.google.com/o/oauth2/auth
?client_id=343334006922-91apn6sc3852qhdom1nto19esggso1d8.apps.googleusercontent.com
&redirect_uri=http://localhost
&scope=https://www.googleapis.com/auth/drive
&response_type=code
&approval_prompt=force
&access_type=offline
- 新規でタブを開き、検索窓に入力し、エンターを押す。
- 以下の画面になったら、「許可」をクリック
- 画面自体は表示されないが、検索窓に返ってくる
code=
以下をコピー
- ターミナル上でIDとURIやキー等を用いて以下のようなコマンドを実行する
- 例
curl -d client_id=[クライアントID] -d client_secret=[クライアントシークレット] -d redirect_uri=[リダイレクトURI] -d grant_type=authorization_code -d code=[認証コード] https://accounts.google.com/o/oauth2/token
- 実際の値
curl -d client_id=343334006922-91apn6sc3852qhdom1nto19esggso1d8.apps.googleusercontent.com -d client_secret=aIzSVTkvDPnm6gQcxFk-jtPi -d redirect_uri=http://localhost -d grant_type=authorization_code -d code=4/ybTMw1xiV19_k4wdFZGMJRf9Ytnsdk3N0WpLJ4PpHLo# https://accounts.google.com/o/oauth2/token
- ターミナルに入力
- エンターを押すと、jsonが返って来る
- このjsonを保存する。
- 以上の手順を経て、必要なトークンを取得することができました。
- 取得したすべてのデータは必ずテキストなどに保存してください。