AndroidアプリからのGoogle Drive API使用方法まとめ - (2) アプリ情報登録編

# 目的
- Androidアプリからの Google Drive API Ver.3 (旧REST API) 使用方法をまとめる。
- ここでは下図の手順(a)、アプリ情報登録（アプリとAPIの関連付け）の手順について説明する。
![Key_Certificate_Debug_a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/596afa8e-b157-850f-6bea-0a49c2e2cf41.png)

- 全体の記事は[こちら][link0]

# 環境
- OS：Windows10 Professional 21H2
- Android Studio 2021.2.1
- ブラウザ：Google Chrome 103.0.5060.66（64bit）

# アプリ情報登録

(1) Google Playデベロッパーアカウントを作成する。

  - [Play Console の使用方法][link1] の手順に従い、Google Play デベロッパー アカウントを作成する。

(2) Google APIコンソールへログインする。

  -  (1)で作成したアカウントで[Google Cloud API Console][link2] へログインする。

(3) プロジェクトを作成する。

  - GoogleのAPIをアプリで利用するには、Google Cloud プロジェクトを作成し、アプリとの関連付けや認証情報の設定を行う必要がある。
  - Google APIコンソールへ初めてログインすると以下の画面が表示されるので、赤枠部"プロジェクトを作成"を選択する。
![GcloudApiLib0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/fe2b443b-7e46-2d3c-7176-be1f6b1fc08f.png)

  - プロジェクト名を指定し、"作成"を選択する。"場所" はデフォルトの”組織なし"のままで良い。
![GcloudApiLibL.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/bd507922-e4a2-3d98-7f66-e7a6317c19f9.png)

(2) Google Drive APIを有効化。

  - 以下画面が表示されるので、画面左の"ライブラリ"を選択する。
![GcloudApiLibM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/486cebea-4eae-c327-a93d-d3ac0116c37f.png)
  - 画面を下へスクロールし、"Google Drive API"を選択する。
![GcloudApiLib1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/5dd840e3-f39e-0f15-1d8c-bd80bda01c4c.png)
  - "有効にする"を選択する。
![GcloudApiLib2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/c0c00f24-7854-864c-845f-cd3898add674.png)

(3) 認証情報を設定する。
  - APIの詳細が表示されるので、画面左のメニューから”認証情報”を選択する。
![GcloudApiLib3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/48ba293d-d28c-4a3a-c845-f82a41fad52a.png)
  - "CREATE CREDENTIALS"から"OAuth クライアントID"を選択する。
![GcloudApiLib4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/d2a97dbf-798a-6d38-f8b5-47d973c6569b.png)

  - ユーザーとアプリがサーバー上のユーザーデータへアクセスするための認証プロトコルとして"OAuth"が使用される。
  
    参考：[一番わかりやすいOAuthの説明][link3]

  - ”同意画面を設定”を選択する。
![GcloudApiLibN.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/4d6ff271-051a-55a0-675e-893816ebd8cf.png)
  - ユーザータイプとして”内部”または"外部"のどちらかを選択する。ここではGoogle Playで公開するアプリを想定しているため、組織で構成される内部ユーザーに限定しない"外部"で進める。どちらか選択した後、"作成"を選択する。
![GcloudApiLibO.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/55f16f31-2428-21dc-3aed-9ce0078836f2.png)
  - "OAuth同意画面"への入力項目が表示される。必須の項目として、以下を入力する。

     ・アプリのパッケージ名（AndroidManifest.xmlで指定したもの）

     ・ユーザーサポートメール（ユーザーからの問い合わせ用）

     ・デベロッパーの連絡先情報としてのメールアドレス（Googleからの連絡用）

     必要であればアプリのロゴ画像ファイル（OAuth同意を求めるアプリの識別用として画面表示される）やアプリのドメイン（プライバシーポリシーや利用規約の確認要）を指定し、"保存して次へ"をクリックする。
![GcloudApiLib5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/0304bb75-3942-d0f1-5e2d-ed5f9698399c.png)
![GcloudApiLibP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/8b3909ff-211d-f671-60bf-d8401f913364.png)
  
  ここでアプリのパッケージ名を指定することで、使用するAPIとの関連付けができる。

(4) アクセスするデータのスコープを設定する。

  - アプリからアクセスするデータの種類に応じたスコープ（範囲）を設定する。
  スコープはAPI毎に選択できる。API毎のスコープとアクセスできる範囲は、[Google APIのAuth2.0スコープ][link4] 参照。
  スコープはアプリ登録時に指定することも可能。ここで指定する場合は "スコープ（省略可）" の下にある "スコープの追加または削除" をクリックする。
![GcloudApiLib6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/391349bd-825f-45b4-bdb7-e7827455fbe0.png)

  - 一覧表示されたスコープで">"をクリックしてGoogle Drive関連の項目を表示後、アクセスしたいデータ範囲に当てはまる項目を選択し "更新" をクリックする。下図の通り、"このアプリで使用するGoogle ドライブ上の特定のファイルのみの参照、編集、作成、削除"を選択した場合は追加の入力項目は無い。これ以外の項目を選択した場合、この後に他の入力画面が表示されるかもしれない。（詳細は未確認。）
![GcloudApiLib7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/b3f9b126-ad71-4e5e-d766-1d93d77d08b6.png)
  - "保存して次へ" をクリックする。
![GcloudApiLib8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/12242063-77b8-6f4d-6e62-0105c06413f6.png)

(5) テストユーザーを設定する。

  - テストユーザーを設定する。"ADD USERS"ボタンのクリックで、作成するアプリの公開ステータスが"テスト中"の場合に Google Play からアクセスできるユーザーアカウントを指定できる。テストユーザーはアプリをGoogle Playへ登録した後でも設定できるので、ここでは”保存して次へ”をクリックする。
![GcloudApiLibQ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/9bb74867-7d6d-936b-644a-521c18065361.png)
  - ここまで設定したOAuth同意画面に関する項目が一覧表示されるため、内容確認し修正する項目があれば"編集"を選択して再度入力する。問題無ければ下までスクロールし"ダッシュボードに戻る"を選択する。
![GcloudApiLibR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2408239/fb3463c2-be7c-ebef-5969-46e18c8ac0f4.png)

# 参考

- [AndroidアプリからのGoogle Drive API使用方法まとめ - (1) 全体編][link0]
- [Play Console の使用方法][link1]
- [Google Cloud API Console][link2]
- [一番わかりやすいOAuthの説明][link3]
- [Google APIのAuth2.0スコープ][link4]



# 変更履歴
- 2022/8/28 初版


[link0]:https://qiita.com/SolitaryFiatist/items/fa830b4828375873bcc1
[link1]:https://support.google.com/googleplay/android-developer/answer/6112435?hl=ja
[link2]:https://console.developers.google.com/projectselector/apis/dashboard
[link3]:https://qiita.com/TakahikoKawasaki/items/e37caf50776e00e733be
[link4]:https://developers.google.com/identity/protocols/oauth2/scopes