ドライブの 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。
アプリは、次の手順に沿ってこのリクエストに対応する必要があります。
action
フィールドの値が create
であることを確認します。
userId
値を使用して、ユーザーの新しいセッションを作成します。ログイン中のユーザーの詳細については、ユーザーと新しいイベントをご覧ください。
files.create
メソッドを使用してファイル リソースを作成します。リクエストで folderId
が設定されている場合は、parents
フィールドを folderId
値に設定します。
- リクエストに
folderResourceKey
が設定されている場合は、X-Goog-Drive-Resource-Keys
リクエスト ヘッダーを設定します。リソースキーの詳細については、リソースキーを使用してリンク共有ファイルをアクセスするをご覧ください。
state
パラメータは URL エンコードされているため、アプリでエスケープ文字を処理し、JSON として解析する必要があります。
ユーザーと新しいイベント
ドライブ アプリは、すべての「作成」イベントを潜在的なログインとして扱う必要があります。ユーザーが複数のアカウントを持っている場合、state
パラメータのユーザー ID が現在のセッションと一致しないことがあります。state
パラメータのユーザー ID が現在のセッションと一致しない場合は、アプリの現在のセッションを終了し、リクエストされたユーザーとしてログインします。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-02-24 UTC。
[null,null,["最終更新日 2025-02-24 UTC。"],[[["When a user creates a new file with your app from Drive UI, your app receives a `state` parameter containing action, folder details, and user ID."],["Your app should verify the `action` is \"create\", create a user session, and use the provided information to create a new file via the Drive API."],["All \"create\" events should be treated as potential sign-ins and handled to accommodate users with multiple accounts, potentially requiring session switching."],["The `state` parameter is URL-encoded and needs to be parsed as JSON by your application for proper data extraction."]]],["When a user selects an app via Drive UI's \"New\" button, Drive redirects to the app's New URL, sending a `state` parameter. The `state` includes `action` (set to \"create\"), `folderId`, `folderResourceKey`, and `userId`. The app must verify the `action`, initiate a new user session based on `userId`, use `files.create` to generate a file resource, and handle `folderId` and `folderResourceKey`. All \"create\" events should be treated as potential sign-ins, with user sessions adjusted accordingly. The `state` parameter is URL-encoded JSON and must be parsed.\n"]]