デスクトップ アプリの概要

Google Picker API を使用すると、ユーザーが Google ドライブのファイルを選択したり、アップロードしたりできるようになります。ユーザーは、デスクトップ アプリに Google ドライブのデータへのアクセス権を付与できます。これにより、ファイルと安全かつ承認された方法でやり取りできます。

Google Picker は、ドライブに保存されているファイルの [ファイルを開く] ダイアログとして機能し、次のような機能を備えています。

  • Google ドライブの UI と同様のデザインと操作性。
  • ドライブ ファイルのプレビューとサムネイル画像を表示する複数のビュー。
  • ユーザーのデフォルト ブラウザの新しいタブで Google Picker にリダイレクトされます。

なお、Google Picker では、ユーザーがファイルをフォルダ間で整理、移動、コピーすることはできません。ファイルを管理するには、 Google Drive API またはドライブの UI を使用する必要があります。

前提条件

Google Picker を使用するアプリは、既存のすべての利用規約を遵守する必要があります。最も重要なのは、リクエストで自分自身を正しく識別することです。

Google Cloud プロジェクトも必要です。

環境の設定

Google Picker API の使用を開始するには、環境を設定する必要があります。

API を有効にする

Google API を使用する前に、Google Cloud プロジェクトで API を有効にする必要があります。1 つの Google Cloud プロジェクトで 1 つ以上の API を有効にできます。
  • Google Cloud コンソールで、Google Picker API を有効にします。

    API の有効化

API キーを作成する

API キーは、大文字、小文字、数字、アンダースコア、ハイフンを含む長い文字列です(例: AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe)。この認証方法は、一般公開されているデータに匿名でアクセスするために使用されます。たとえば、「このリンクを知っているインターネット上のすべてのユーザー」という共有設定で共有された Google Workspace ファイルにアクセスする場合に使用されます。詳細については、API キーを管理するをご覧ください。

API キーを作成するには:

  1. Google Cloud コンソールで、メニュー > [API とサービス] > [認証情報] に移動します。

    [認証情報] に移動

  2. [認証情報を作成] > [API キー] をクリックします。
  3. 新しい API キーが表示されます。
    • [コピー] をクリックして、アプリのコードで使用する API キーをコピーします。API キーは、プロジェクトの認証情報の [API キー] セクションでも確認できます。
    • 不正使用を防ぐため、API キーを使用できる場所と対象の API を制限することをおすすめします。詳細については、API 制限を追加するをご覧ください。

デスクトップ アプリの認証情報を承認する

エンドユーザーを認証してアプリ内でユーザーデータにアクセスするには、1 つ以上の OAuth 2.0 クライアント ID を作成する必要があります。クライアント ID は、Google の OAuth サーバーで個々のアプリを識別するために使用します。アプリが複数のプラットフォームで実行される場合は、プラットフォームごとに個別のクライアント ID を作成する必要があります。
  1. Google Cloud コンソールで、メニュー > Google Auth platform > [クライアント] に移動します。

    [クライアント] に移動

  2. [Create Client] をクリックします。
  3. [アプリケーション タイプ] > [デスクトップ アプリ] をクリックします。
  4. [名前] フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。
  5. [Create] をクリックします。

    新しく作成した認証情報は、[OAuth 2.0 クライアント ID] に表示されます。

アプリが以前に付与されたファイルへの承認を取得するには、次の手順を使用する必要があります。

  1. OAuth 2.0 を使用して Google API にアクセスするの手順に沿って、drive.filedrive、または drive.readonly スコープで OAuth 2.0 トークンを取得する必要があります。スコープの詳細については、Google Drive API のスコープを選択するをご覧ください。

  2. OAuth 2.0 トークンを Drive API に渡して、ユーザーが以前にアクセス権を付与したファイルを読み取り、変更します。

Google ピッカーを表示する

パソコン用アプリの Google Picker API は、ユーザーのデフォルト ブラウザの新しいタブ内の Google Picker にリダイレクトします。ユーザーがアクセスを許可して関連ファイルを選択すると、Google Picker はコールバック URL を介して呼び出し元のアプリに戻ります。Google Picker API をクライアント ページで開くには、ウェブアプリ用の Google Picker API を使用します。詳細については、ウェブアプリの概要をご覧ください。

ユーザーが追加のファイルへのアクセスを許可したり、デスクトップ アプリのフローで使用するファイルを選択したりできるようにするには、次の手順を行います。

  1. drive.file スコープへのアクセスをリクエストして、OAuth 2.0 を使用して Google API にアクセスするの手順に沿って、新しいブラウザタブで OAuth 2.0 アクセス ページを開きます。スコープの詳細については、Google Drive API のスコープを選択するをご覧ください。

    デスクトップ アプリで許可されているのは drive.file スコープのみで、他のスコープと組み合わせることはできません。

  2. 新しいブラウザタブの URL では、すべての標準の OAuth クエリ文字列パラメータを使用できます。

    OAuth 2.0 認可 URL リクエストに、URL パラメータ prompttrigger_onepick を追加する必要があります。次のオプション パラメータを使用して Google Picker をカスタマイズすることもできます。

    パラメータ 説明 ステータス
    prompt=consent ファイル アクセスのプロンプト。 必須
    trigger_onepick=true Google ピッカーを有効にします。 必須
    allow_multiple=true true の場合、ユーザーが複数のファイルを選択できるようにします。 省略可
    mimetypes=MIMETYPES 検索結果をフィルタする MIME タイプのカンマ区切りのリスト。設定されていない場合、すべての MIME タイプのファイルがビューに表示されます。 省略可
    file_ids=FILE_IDS 検索結果をフィルタするファイル ID のカンマ区切りリスト。設定しない場合、すべてのファイルがビューに表示されます。 省略可

    次のサンプルは、OAuth 2.0 認証 URL リクエストを示しています。

    https://accounts.google.com/o/oauth2/v2/auth? \
    client_id=CLIENT_ID \
    &scope=https://www.googleapis.com/auth/drive.file \
    &redirect_uri=REDIRECT_URI \
    &response_type=code \
    &access_type=offline \
    &prompt=consent \
    &trigger_onepick=true
    

    次のように置き換えます。

    • CLIENT_ID: デスクトップ アプリのクライアント ID。

    • REDIRECT_URI: 認証に成功した後、認証サーバーがユーザーのブラウザをリダイレクトする場所。例: https://www.cymbalgroup.com/oauth2callback

      指定された redirect_uri は、公開 HTTPS URL である必要があります。redirect_uri にカスタム プロトコルまたは localhost URL を使用する場合は、カスタム プロトコルまたは localhost URL にリダイレクトするパブリック HTTPS URL を使用する必要があります。

  3. ユーザーがアクセスを許可して関連するファイルを選択すると、OAuth はリクエストで指定された redirect_uri にリダイレクトし、次の URL パラメータを追加します。

    • picked_file_ids: ユーザーがアクセスを許可してファイルを選択した場合、選択したファイル ID のカンマ区切りリスト。

    • code: リクエストで設定された response_type パラメータに基づくアクセス トークンまたはアクセスコード。このパラメータには、新しい認可コードが含まれます。

    • scope: リクエストに含まれるスコープ。

    • error: 同意フロー内でユーザーがリクエストをキャンセルした場合、エラーが表示されます。

    次のサンプルは、OAuth 2.0 認証 URL レスポンスを示しています。

    https://REDIRECT_URI?picked_file_ids=PICKED_FILE_IDS&code=CODE&scope=SCOPES
    
  4. アプリは、ステップ 3 の認証コードを新しい OAuth 2.0 トークンと交換する必要があります。詳細については、更新トークンとアクセス トークンの認証コードを交換するをご覧ください。

  5. アプリは、ステップ 3 の URL パラメータのファイル ID とステップ 4 で取得した OAuth 2.0 トークンを使用して、Drive API を呼び出すことができます。詳細については、Google Drive API の概要をご覧ください。