Integrare Google Picker in app mobile e desktop

Questo documento spiega come integrare Google Picker nelle app per computer e dispositivi mobili utilizzando l'API Google Picker.

L'API Google Picker consente agli utenti di selezionare o caricare file di Google Drive. Gli utenti possono concedere alla tua app per computer, dispositivi mobili o app web l'autorizzazione ad accedere ai propri dati di Drive, fornendo un modo sicuro e autorizzato per interagire con i propri file.

Funzionalità

Google Picker ha diverse funzionalità:

  • Un aspetto simile all'interfaccia utente di Google Drive.
  • Diverse visualizzazioni che mostrano anteprime e immagini in miniatura dei file di Drive.
  • Visualizzazioni pre-filtrate che mostrano solo tipi di file specifici (come PDF o immagini) o determinate cartelle.
  • Un reindirizzamento a Google Picker in una nuova scheda del browser predefinito dell'utente. Per aprire l'API Google Picker in una pagina client, utilizza invece l'API Google Picker per le app web.

Tieni presente che, sebbene tu possa selezionare e caricare file con 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 è identificarti 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

Configura l'autenticazione e l'autorizzazione

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.

Autorizza le credenziali per un'app per computer

Per creare un ID client OAuth 2.0:

  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 per computer.
  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 a cui è stata concessa 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. Trasmetti il token OAuth 2.0 all'API Drive per leggere e modificare i file a cui l'utente ha concesso l'accesso in precedenza.

Autorizza le credenziali per la tua app mobile

Per creare un ID client OAuth 2.0, segui i passaggi descritti in Autorizzare le credenziali per un'app mobile.

Autorizza le credenziali per la tua app web

Per creare un ID client OAuth 2.0, segui i passaggi descritti in Autorizzare le credenziali per un'app web.

Visualizza Google Picker

L'API Google Picker per app per computer e dispositivi mobili reindirizza a Google Picker in una nuova scheda del 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.

  • Schermata di autenticazione dell'interfaccia utente di Google Picker

    Autentica la tua app attivando Google Picker.

  • Finestra di dialogo di accesso e autorizzazioni di Google

    Accedi con Google e concedi le autorizzazioni richieste.

  • Interfaccia di selezione dei file di Google Drive all'interno del selettore

    Sfoglia i file di Google Drive in Google Picker e seleziona l'elemento che ti interessa.

  • Schermata di conferma dell'inserimento del file che mostra il pulsante Inserisci

    Conferma la selezione e tocca Inserisci per aggiungere il file all'app.

Integra Google Picker nella tua app

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

  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 queste app è 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. Se vuoi, puoi anche personalizzare Google Picker con diversi altri parametri:

    Parametro Descrizione Stato
    prompt=consent Richiedi l'accesso ai file. Obbligatorio
    trigger_onepick=true Attiva Google Picker. Obbligatorio
    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 della tua app.

    • 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 maggiori dettagli, vai a Panoramica dell'API Google Drive overview.

Utilizza Google Picker con le app per Android

Puoi utilizzare Google Picker anche nelle app mobile per 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 per computer. Per informazioni dettagliate sull'autenticazione di Android, vedi Autorizzare l'accesso ai dati utente di Google.

Per visualizzare Google Picker durante l'autorizzazione, crea un AuthorizationRequest e utilizza il parametro della risorsa PICKER_OAUTH_TRIGGER nell'oggetto AuthorizationRequest.ResourceParameter.

Quando crei AuthorizationRequest:

  • Utilizza l'ambito drive.file.

  • Chiama setOptOutIncludingGrantedScopes su true per assicurarti che il token restituito sia solo per l'ambito drive.file 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.

  • Se vuoi, puoi utilizzare l'operatore "OR" bit a bit (|) per impostare anche il campo AuthorizationRequest.Prompt su 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 per computer, puoi personalizzare Google Picker con diversi parametri facoltativi:

  • PICKER_ALLOW_MULTIPLE: consente agli utenti di selezionare più file.
  • PICKER_MIMETYPES: accetta 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: accetta un elenco separato da virgole di ID file per filtrare i risultati di ricerca. Se non è impostato, nella visualizzazione vengono visualizzati tutti i file.
  • PICKER_ALLOW_FOLDER_SELECTION: consente agli utenti di selezionare anche le cartelle.

Per saperne di più sui parametri facoltativi nelle app per computer, 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.