初めての 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 アドレスが「テストユーザー」として登録されていない場合、認証に失敗しますので注意してください。