Panoramica delle app mobile e desktop

L'API Google Picker consente agli utenti di selezionare o caricare file di Google Drive. Gli utenti possono concedere alle tue app mobile e desktop l'autorizzazione ad accedere ai propri dati di Drive, fornendo un modo sicuro e autorizzato per interagire con i loro file.

Google Picker funge da finestra di dialogo "Apri file" per i file archiviati su Drive e ha diverse funzionalità:

  • Un aspetto simile all'interfaccia utente di Google Drive.
  • Diverse visualizzazioni che mostrano anteprime e miniature dei file di Drive.
  • Un reindirizzamento a Google Picker in una nuova scheda nel browser predefinito dell'utente.

Tieni presente che Google Picker non consente agli utenti di organizzare, spostare o copiare file da una cartella all'altra. Per gestire i file, devi utilizzare l'API Google Drive o l'interfaccia utente di Drive.

Prerequisiti

Le app che utilizzano Google Picker devono rispettare tutti i Termini di servizio esistenti. La cosa più importante è identificarsi correttamente nelle richieste.

Devi anche disporre di un progetto Google Cloud.

Configura l'ambiente

Per iniziare a utilizzare l'API Google Picker, devi configurare l'ambiente.

Abilita l'API

Prima di utilizzare le API di Google, devi attivarle in un progetto Google Cloud. Puoi attivare una o più API in un singolo progetto Google Cloud.
  • Nella console Google Cloud, abilita l'API Google Picker.

    Abilita l'API

Crea una chiave API

Una chiave API è una stringa lunga contenente lettere maiuscole e minuscole, numeri, trattini bassi e trattini, ad esempio AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe. Questo metodo di autenticazione viene utilizzato per accedere in modo anonimo ai dati disponibili pubblicamente, come i file di Google Workspace condivisi utilizzando l'impostazione di condivisione "Chiunque su internet con questo link". Per maggiori dettagli, vedi Gestire le chiavi API.

Per creare una chiave API:

  1. Nella console Google Cloud, vai a Menu > API e servizi > Credenziali.

    Vai a credenziali

  2. Fai clic su Crea credenziali > Chiave API.
  3. Viene visualizzata la nuova chiave API.
    • Fai clic su Copia per copiare la chiave API da utilizzare in your app's code. La chiave API è disponibile anche nella sezione "Chiavi API" delle credenziali del progetto.
    • Per impedire l'uso non autorizzato, ti consigliamo di limitare dove e per quali API può essere utilizzata la chiave API. Per maggiori dettagli, vedi Aggiungere limitazioni API.

Autorizza le credenziali per un'app desktop

Per autenticare gli utenti finali e accedere ai dati utente nella tua app, devi creare uno o più ID client OAuth 2.0. L'ID client viene utilizzato per identificare una singola app nei server OAuth di Google. Se l'app viene eseguita su più piattaforme, devi creare un ID client separato per ogni piattaforma.
  1. Nella console API di Google, vai a Menu > Piattaforma di autenticazione Google > Client.

    Vai a Client

  2. Fai clic su Crea client.
  3. Fai clic su Tipo di applicazione > App desktop.
  4. Nel campo Nome, digita un nome per la credenziale. Questo nome viene visualizzato solo nella console API di Google.
  5. Fai clic su Crea.

    La credenziale appena creata viene visualizzata in "ID client OAuth 2.0".

Per consentire alle app di ottenere l'autorizzazione per i file concessi in precedenza, devi seguire questi passaggi:

  1. Devi ottenere un token OAuth 2.0 con l'ambito drive.file, drive o drive.readonly utilizzando queste istruzioni: Utilizzare OAuth 2.0 per accedere alle API di Google. Per saperne di più sugli ambiti, vedi Scegliere gli ambiti dell'API Google Drive.

  2. Passa il token OAuth 2.0 all'API Drive per leggere e modificare i file a cui l'utente ha concesso l'accesso in precedenza.

Visualizza Google Picker

L'API Google Picker per le app desktop reindirizza a Google Picker in una nuova scheda nel browser predefinito dell'utente. Una volta che l'utente concede l'accesso e seleziona i file pertinenti, Google Picker torna all'app chiamante tramite l'URL di callback. Per aprire l'API Google Picker in una pagina client, utilizza invece l'API Google Picker per le app web. Per saperne di più, vedi Panoramica delle app web.

Per consentire agli utenti di concedere l'accesso a file aggiuntivi o di selezionare i file da utilizzare nel flusso dell'app desktop:

  1. Richiedi l'accesso all'ambito drive.file per aprire la pagina di accesso OAuth 2.0 in una nuova scheda del browser utilizzando queste istruzioni: Utilizzare OAuth 2.0 per accedere alle API di Google. Per saperne di più sugli ambiti, vedi Scegliere gli ambiti dell'API Google Drive.

    Tieni presente che per le app desktop è consentito solo l'ambito drive.file e non può essere combinato con altri ambiti.

  2. L'URL della nuova scheda del browser accetta tutti i parametri della stringa di query OAuth standard.

    Devi aggiungere i parametri URL prompt e trigger_onepick alla richiesta dell'URL di autorizzazione OAuth 2.0:

    Parametro Descrizione Stato
    prompt=consent Richiedi l'accesso ai file. Obbligatorio
    trigger_onepick=true Attiva Google Picker. Obbligatorio

    Puoi anche personalizzare Google Picker con diversi parametri facoltativi:

    Parametro Descrizione Stato
    allow_multiple=true Se è impostato su true, consente all'utente di selezionare più file. Facoltativo
    mimetypes=MIMETYPES Un elenco separato da virgole di tipi MIME per filtrare i risultati di ricerca. Se non è impostato, nella visualizzazione vengono visualizzati i file per tutti i tipi MIME. Facoltativo
    file_ids=FILE_IDS Un elenco separato da virgole di ID file per filtrare i risultati di ricerca. Se non è impostato, nella visualizzazione vengono visualizzati tutti i file. Facoltativo
    allow_folder_selection=true Se è impostato su true, consente all'utente di selezionare anche le cartelle. Facoltativo

    Il seguente esempio mostra una richiesta dell'URL di autorizzazione OAuth 2.0:

    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
    

    Sostituisci quanto segue:

    • CLIENT_ID: l'ID client dell'app desktop.

    • REDIRECT_URI: dove il server di autorizzazione reindirizza il browser dell'utente dopo l'autenticazione. Ad esempio, https://www.cymbalgroup.com/oauth2callback.

    redirect_uri specificato deve essere un URL HTTPS pubblico. Se vuoi utilizzare un protocollo personalizzato o un URL localhost per redirect_uri, devi utilizzare un URL HTTPS pubblico che reindirizzi al protocollo personalizzato o all'URL localhost.

  3. Una volta che l'utente concede l'accesso e seleziona i file pertinenti, OAuth reindirizza a redirect_uri specificato nella richiesta con i seguenti parametri URL aggiunti:

    • picked_file_ids: se l'utente ha concesso l'accesso e selezionato i file, un elenco separato da virgole degli ID file selezionati.

    • code: il token di accesso o il codice di accesso in base al response_type parametro impostato nella richiesta. Questo parametro include un nuovo codice di autorizzazione.

    • scope: gli ambiti inclusi nella richiesta.

    • error: se l'utente ha annullato la richiesta nel flusso di consenso, viene visualizzato un errore.

    Il seguente esempio mostra una risposta dell'URL di autorizzazione OAuth 2.0:

    https://REDIRECT_URI?picked_file_ids=PICKED_FILE_IDS&code=CODE&scope=SCOPES
    
  4. Le app devono scambiare il codice di autorizzazione del passaggio 3 con un nuovo token OAuth 2.0. Per saperne di più, vedi Scambiare il codice di autorizzazione con token di aggiornamento e di accesso.

  5. Le app possono quindi utilizzare gli ID file del parametro URL nel passaggio 3 e il token OAuth 2.0 ottenuto nel passaggio 4 per chiamare l'API Drive. Per saperne di più, vedi Panoramica dell'API Google Drive.

Utilizza Google Picker con Android

Puoi utilizzare Google Picker anche nella tua app mobile Android.

Autorizza le credenziali per un'app mobile

Per utilizzare Google Picker nella tua app per Android, devi autorizzare gli utenti utilizzando OAuth 2.0, in modo simile alle app desktop. Per informazioni dettagliate sull'autenticazione Android, vedi Autorizzare l'accesso ai dati utente di Google data.

Per visualizzare Google Picker durante l'autorizzazione, crea un AuthorizationRequest e utilizza PICKER_OAUTH_TRIGGER con AuthorizationRequest.ResourceParameter.

Quando crei AuthorizationRequest:

  • Utilizza l'ambito https://www.googleapis.com/auth/drive.file.
  • Chiama setOptOutIncludingGrantedScopes(true) per assicurarti che il token restituito sia solo per l' https://www.googleapis.com/auth/drive.file ambito e non per gli ambiti concessi in precedenza.
  • Imposta il campo AuthorizationRequest.Prompt su CONSENT per richiedere il consenso all'utente anche se è stato concesso in precedenza. Questo campo è applicabile solo alle richieste che includono parametri delle risorse.
  • Se vuoi, puoi utilizzare l'operatore "OR" (|) bitmap per impostare anche il campo AuthorizationRequest.Prompt SELECT_ACCOUNT per consentire all'utente di selezionare un account prima che venga visualizzata la richiesta di consenso.

Chiama Google Picker

Come per le app desktop, puoi personalizzare Google Picker con diversi parametri facoltativi:

  • PICKER_ALLOW_MULTIPLE: consente agli utenti di selezionare più file.
  • PICKER_MIMETYPES: restituisce un elenco separato da virgole di tipi MIME per filtrare i risultati di ricerca. Se non è impostato, nella visualizzazione vengono visualizzati i file per tutti i tipi MIME.
  • PICKER_FILE_IDS: restituisce un elenco separato da virgole di ID file per filtrare i risultati di ricerca. Se non è impostato, nella visualizzazione vengono visualizzati tutti i file.

Per saperne di più sui parametri facoltativi nelle app desktop, vedi Visualizzare Google Picker.

Una volta che l'utente concede l'accesso e seleziona i file pertinenti, viene restituito l'oggetto getTokenResponseParams della risorsa AuthorizationResult. Se l'utente ha concesso l'accesso, questo oggetto contiene il valore picked_file_ids, che è un elenco separato da virgole degli ID file selezionati.