Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Google API OAuth2.0のアクセストークン&リフレッシュトークン取得手順 2017年2月版

More than 3 years have passed since last update.

概要

  • Rubyを使って、自動でGoogleシートに記述するプログラムを作成しましたが、その際にGoogle APIのトークンを取得するのに手間取りました。
  • こちらに詳しく情報をまとめましたので、参考にして頂ければ感謝です。

手順

1.取得に使うGoogleアカウントでログイン

2.Google Developers Consoleにアクセス

https://console.developers.google.com

3.API プロジェクトを作成

スクリーンショット 2017-02-25 15.11.11.png

  • プロジェクト名を入れて、作成

スクリーンショット 2017-02-25 15.13.34.png

4.左メニューのライブラリ -> 「Drive API」を選択

スクリーンショット 2017-02-25 15.15.18.png

  • 「有効にする」をクリック

スクリーンショット 2017-02-25 15.17.19.png

  • 「認証情報を作成」をクリック

スクリーンショット 2017-02-25 15.18.20.png

  • API を呼び出す場所を選択
  • アクセスするデータの種類を選択
  • 「必要な認証情報」をクリック

スクリーンショット 2017-02-25 15.21.09.png

  • 承認済みのJavaScript生成と承認済みのリダイレクトURIに http://localhost と入力する。

スクリーンショット 2017-02-25 15.23.37.png

  • ユーザーに表示するサービス名を入力

スクリーンショット 2017-02-25 15.27.01.png

  • クライアント情報をダウンロード

スクリーンショット 2017-02-25 15.28.08.png

  • ダウンロードしたファイルをjsonファイルをテキストエディタで開く。

スクリーンショット 2017-02-25 15.30.08.png

  • 見やすいように整形する

スクリーンショット 2017-02-25 15.31.31.png

5.クエリパラメータを追加したURLにブラウザでアクセス

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
  • 新規でタブを開き、検索窓に入力し、エンターを押す。

スクリーンショット 2017-02-25 15.36.51.png

  • 以下の画面になったら、「許可」をクリック

スクリーンショット 2017-02-25 15.39.22.png

  • 画面自体は表示されないが、検索窓に返ってくる code= 以下をコピー

スクリーンショット 2017-02-25 15.40.25.png

  • ターミナル上で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
  • ターミナルに入力

スクリーンショット 2017-02-25 15.45.07.png

  • エンターを押すと、jsonが返って来る

スクリーンショット 2017-02-25 15.46.26.png

  • このjsonを保存する。
  • 以上の手順を経て、必要なトークンを取得することができました。
  • 取得したすべてのデータは必ずテキストなどに保存してください。
iwaseasahi
キリスト教の牧師から、エンジニアに転職しました。全くの未経験で、2016年2月からプログラミングを勉強し始め、同年10月にエンジニアに就職できました。その後、2019年7月よりプロダクトマネージャーを担当しています。紆余曲折ある人生ですが、エンジニアは素晴らしい職業だと感じています。
sight-visit
資格のオンライン予備校「資格スクエア」, 契約管理サービス「NINJA SIGN」を運営するスタートアップ
https://sight-visit.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away