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

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

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

### 2.Google Developers Consoleにアクセス
https://console.developers.google.com

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

![スクリーンショット 2017-02-25 15.11.11.png](https://qiita-image-store.s3.amazonaws.com/0/142810/50250ffa-3959-f9b5-c081-2106954833db.png "スクリーンショット 2017-02-25 15.11.11.png")


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

![スクリーンショット 2017-02-25 15.13.34.png](https://qiita-image-store.s3.amazonaws.com/0/142810/f223078b-a2c2-4ac0-93e3-ed709792fe79.png "スクリーンショット 2017-02-25 15.13.34.png")


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

![スクリーンショット 2017-02-25 15.15.18.png](https://qiita-image-store.s3.amazonaws.com/0/142810/2cfd37c9-e7e2-a798-79c1-41a1ca093986.png "スクリーンショット 2017-02-25 15.15.18.png")


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

![スクリーンショット 2017-02-25 15.17.19.png](https://qiita-image-store.s3.amazonaws.com/0/142810/10baf5d2-6392-9fce-4ce1-a622b8d7ab70.png "スクリーンショット 2017-02-25 15.17.19.png")


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

![スクリーンショット 2017-02-25 15.18.20.png](https://qiita-image-store.s3.amazonaws.com/0/142810/a5a80a94-b5a0-b72a-1d5a-2296b2a448c4.png "スクリーンショット 2017-02-25 15.18.20.png")


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

![スクリーンショット 2017-02-25 15.21.09.png](https://qiita-image-store.s3.amazonaws.com/0/142810/d646906e-e019-e8b5-9946-855a918b227c.png "スクリーンショット 2017-02-25 15.21.09.png")

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

![スクリーンショット 2017-02-25 15.23.37.png](https://qiita-image-store.s3.amazonaws.com/0/142810/44c925d9-fdfe-ff26-a97e-3a1ac5bf27cd.png "スクリーンショット 2017-02-25 15.23.37.png")

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

![スクリーンショット 2017-02-25 15.27.01.png](https://qiita-image-store.s3.amazonaws.com/0/142810/2c76419c-5794-d686-8b20-e3a05be47d99.png "スクリーンショット 2017-02-25 15.27.01.png")


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

![スクリーンショット 2017-02-25 15.28.08.png](https://qiita-image-store.s3.amazonaws.com/0/142810/8120ce31-6e48-27bd-bae8-9c1fa5b9e7d9.png "スクリーンショット 2017-02-25 15.28.08.png")

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

![スクリーンショット 2017-02-25 15.30.08.png](https://qiita-image-store.s3.amazonaws.com/0/142810/469236c3-a058-40fb-0959-671bbeae9084.png "スクリーンショット 2017-02-25 15.30.08.png")


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

![スクリーンショット 2017-02-25 15.31.31.png](https://qiita-image-store.s3.amazonaws.com/0/142810/ed0750d3-7231-1412-7fe3-a9f03655a38e.png "スクリーンショット 2017-02-25 15.31.31.png")


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

- 以下のURLにクエリパラメータを追加してブラウザでアクセスする
https://accounts.google.com/o/oauth2/auth

- 例

```
https://accounts.google.com/o/oauth2/auth
?client_id=[4で取得したクライアントID]
&redirect_uri=[４で設定したリダイレクト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](https://qiita-image-store.s3.amazonaws.com/0/142810/1e732d4a-3afd-f5e2-fdd1-9b835fe0cd91.png "スクリーンショット 2017-02-25 15.36.51.png")


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

![スクリーンショット 2017-02-25 15.39.22.png](https://qiita-image-store.s3.amazonaws.com/0/142810/896e042f-2d72-e2ac-a6d6-b48b9c72ee77.png "スクリーンショット 2017-02-25 15.39.22.png")


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

![スクリーンショット 2017-02-25 15.40.25.png](https://qiita-image-store.s3.amazonaws.com/0/142810/f41b4ff4-d26a-4078-bcf0-8287e174a099.png "スクリーンショット 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](https://qiita-image-store.s3.amazonaws.com/0/142810/08bf0663-53e5-a955-5322-8ef842d82de5.png "スクリーンショット 2017-02-25 15.45.07.png")

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

![スクリーンショット 2017-02-25 15.46.26.png](https://qiita-image-store.s3.amazonaws.com/0/142810/d6e5372c-e911-7148-7fde-97fbd6d9980c.png "スクリーンショット 2017-02-25 15.46.26.png")

- このjsonを保存する。
- 以上の手順を経て、必要なトークンを取得することができました。
- 取得したすべてのデータは必ずテキストなどに保存してください。