ドライブの UI の [新規] ボタンと統合する

ユーザーが [ドライブの 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。

アプリは、次の手順でこのリクエストに対応する必要があります。

  1. action フィールドの値が create であることを確認します。
  2. userId 値を使用して、ユーザーの新しいセッションを作成します。ログイン ユーザーの詳細については、ユーザーと新しいイベントをご覧ください。
  3. files.create メソッドを使用して 、ファイル リソースを作成します。リクエストで folderId が設定されている場合は、parents フィールドを folderId 値に設定します。
  4. リクエストで folderResourceKey が設定されている場合は、X-Goog-Drive-Resource-Keys リクエスト ヘッダーを設定します。リソースキーの詳細については、リソースキーを使用してリンク共有ファイルにアクセスするをご覧ください。

state パラメータは URL エンコードされているため、アプリはエスケープ文字を処理して JSON として解析する必要があります。

ユーザーと新しいイベント

ドライブアプリは、すべての「作成」イベントを潜在的なログインとして扱う必要があります。ユーザーによっては複数のアカウントを持っている場合があるため、state パラメータのユーザー ID が現在のセッションと一致しないことがあります。state パラメータのユーザー ID が現在のセッションと一致しない場合は、アプリの現在のセッションを終了し、リクエストされたユーザーとしてログインします。