ユーザーがドライブ UI の [新規] ボタンをクリックして、ドライブ UI でアプリを選択すると、ドライブ UI 統合を構成するで定義されたそのアプリの新しい URL にユーザーがリダイレクトされます。
アプリは state
パラメータ内で、デフォルトのテンプレート変数のセットを受け取ります。新しい URL のデフォルトの state
情報は次のとおりです。
{
"action":"create",
"folderId":"FOLDER_ID",
"folderResourceKey":"FOLDER_RESOURCE_KEY",
"userId":"USER_ID"
}
この出力には次の値が含まれます。
create
: 実行されるアクション。ユーザーがドライブの UI の [新規] ボタンをクリックした場合、値はcreate
になります。- FOLDER_ID: 親フォルダの ID。
- FOLDER_RESOURCE_KEY: 親フォルダのリソースキー。
- USER_ID: ユーザーを一意に識別するプロファイル ID。
アプリは、このリクエストに応じて以下の手順を行う必要があります。
action
フィールドの値がcreate
であることを確認します。userId
値を使用して、ユーザーの新しいセッションを作成します。ログイン ユーザーの詳細については、ユーザーと新しいイベントをご覧ください。files.create
メソッドを使用してファイル リソースを作成します。リクエストでfolderId
が設定されている場合は、parents
フィールドをfolderId
値に設定します。- リクエストで
folderResourceKey
が設定されている場合は、X-Goog-Drive-Resource-Keys
リクエスト ヘッダーを設定します。リソースキーの詳細については、リソースキーを使用してリンク共有ファイルにアクセスするをご覧ください。
state
パラメータは URL エンコードされているため、アプリでエスケープ文字を処理して JSON として解析する必要があります。
ユーザーと新しいイベント
ドライブアプリは、すべての「作成」イベントを潜在的なログインとして扱う必要があります。複数のアカウントを持っているユーザーもいるため、state
パラメータのユーザー ID が現在のセッションと一致しない場合があります。state
パラメータのユーザー ID が現在のセッションと一致しない場合は、アプリの現在のセッションを終了し、リクエストされたユーザーとしてログインします。