
初めての OAuth2 ということで、Google Drive のファイルアクセス方法を探ってみました。
まだ深く理解の及ばないところはありますが、初めての人でもわかりやすいよう説明してみたいと思います。
Google Drive にアクセスするってどういう事?
unity のアプリから 特定の Google アカウント > ドライブ > プライベートファイル
にアクセスする、というケースです。
文字で書くとややこしいですが、絵にするとこんな感じ(こういう事をしたい)。

細かい仕様は後から勉強するとして、これをするために必要な最低限の方法を列挙します。
- Google Cloud で OAuth2 サービス登録
- unity の空プロジェクトに UnityGoogleDrive をインストール、①の認証情報を登録
- GoogleDriveFiles クラスを使ってファイルアクセス
大まかにはこんなところ。①は長く、③は使うまでにコツが必要なので、記事を何回かにわけで紹介します。
Google Cloud で OAuth2 サービス登録
以下のサイトで、認証情報を扱うアプリケーションの登録を行います。

プロジェクトを作成

適当なプロジェクト名をつけて「作成」

作成したプロジェクトを選択して、OAuth 同意画面

今回は「外部」で「作成」

今回はテスト運用なので、アプリ名(適当)、ユーザーサポートメール、デベロッパーの連絡先だけ登録し、「保存して次へ」

ここは何も入力せず、次へ進めます

テストに参加するユーザーの Gmail アドレスを登録し、「保存して次へ」。テストアカウントは 100 名まで
作成直後は公開ステータスが「テスト」になっています。
この期間中、テストユーザーに登録されていないユーザーは認証に失敗します。
公開するためには様々な情報を Google に提示する必要があるようですが、ここでは触れません。

「ライブラリ」を選択

今回は Google Drive API を選択
もし画面上に自分の必要な API が表示されていない場合は、右上の「すべて表示」をクリック

認証情報 > + 認証情報を作成 > OAuth クライアント ID

Unity for Windows で動作させる場合「デスクトップアプリ」
マルチプラットフォームアプリの場合、ターゲットごとに OAuth クライアント ID を作成する
(Windows, iOS, Android であれば、それぞれに1つ、計3つの ID が必要)


「JSON をダウンロード」で、認証情報をダウンロード
テスト中の Google 認証画面

少し先の話になりますが、unity アプリから Google Drive アクセス開始時は必ず「アカウント選択 > アプリが Google Drive にアクセスしていいか確認」となります。
この時 gmail アドレスが「テストユーザー」として登録されていない場合、認証に失敗しますので注意してください。
テストユーザー登録済みの場合

続行で OK

テストユーザー未登録の場合

当然の動作だが一瞬???となる(私だけか)