Integrare Google Picker in app mobile e desktop

Questo documento spiega come integrare Google Picker nelle tue 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 l'autorizzazione alla tua app web, mobile o desktop per accedere ai propri dati di Drive, fornendo un modo sicuro e autorizzato per interagire con i propri file.

Funzionalità

Il selettore Google ha diverse funzionalità:

  • Un aspetto simile all'interfaccia utente di Google Drive.
  • Diverse visualizzazioni che mostrano anteprime e miniature dei file di Drive.
  • Visualizzazioni prefiltrate che mostrano solo tipi di file specifici (come PDF o immagini) o determinate cartelle.
  • Un reindirizzamento al selettore Google in una nuova scheda del browser predefinito dell'utente.

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 la UI di Drive.

Prerequisiti

Le app che utilizzano il selezionatore Google devono rispettare tutti i Termini di servizio esistenti. Soprattutto, devi identificarti correttamente nelle tue richieste.

Devi anche disporre di un progetto Google Cloud.

Configura l'ambiente

Per iniziare a utilizzare l'API Google Picker, devi configurare il tuo 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

Configurare 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 la tua app viene eseguita su più piattaforme, devi creare un ID client separato per ciascuna piattaforma.

Autorizzare le credenziali per un'app per computer

Per creare un ID client OAuth 2.0, segui questi passaggi:

  1. Nella console API di Google, vai a Menu > Piattaforma Google Auth > Client.

    Vai a Clienti

  2. Fai clic su Crea cliente.
  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 precedentemente concessa, devi seguire questa procedura:

  1. Devi ottenere un token OAuth 2.0 con l'ambito drive.file, drive o drive.readonly seguendo queste istruzioni: Utilizzare OAuth 2.0 per accedere alle API di Google. Per ulteriori informazioni 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.

Autorizzare le credenziali per l'app mobile

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

Autorizzare 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.

Visualizzare il selettore Google

L'API Google Picker per app mobile e desktop reindirizza a Google Picker in una nuova scheda del browser predefinito dell'utente. Una volta che l'utente concede l'accesso e sceglie 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 l'API Google Picker per le app web. Per saperne di più, consulta Integrare Google Picker nelle app web.

Per consentire agli utenti di concedere l'accesso a file aggiuntivi o di scegliere 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 seguendo queste istruzioni: Utilizzare OAuth 2.0 per accedere alle API di Google. Per ulteriori informazioni 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 nessun altro ambito.

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

    Devi aggiungere i parametri URL prompt e trigger_onepick alla richiesta dell'URL di autorizzazione OAuth 2.0. Se vuoi, puoi anche personalizzare il selettore Google con diversi altri parametri:

    Parametro Descrizione Stato
    prompt=consent Richiesta di accesso ai file. Obbligatorio
    trigger_onepick=true Attiva il selettore Google. Obbligatorio
    allow_multiple=true Se è 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 di ID file separati da virgole per filtrare i risultati di ricerca. Se non è impostato, nella visualizzazione vengono visualizzati tutti i file. Facoltativo
    allow_folder_selection=true Se è true, consente all'utente di selezionare anche le cartelle. Facoltativo

    Il seguente esempio mostra una richiesta di 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 riuscita. Ad esempio, https://www.cymbalgroup.com/oauth2callback.

      L'redirect_uri specificato deve essere un URL HTTPS pubblico. Se vuoi utilizzare un protocollo personalizzato o un URL localhost per il tuo 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 parametro response_type 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 maggiori informazioni, vedi Scambia codice di autorizzazione per 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 ulteriori informazioni, consulta la panoramica dell'API Google Drive.

Utilizzare il selettore Google con le app per Android

Puoi anche utilizzare il selettore Google nelle tue app mobile per Android.

Autorizzare 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 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 a true per assicurarti che il token restituito sia solo per l'ambito drive.file e non per ambiti concessi in precedenza.

  • Imposta il campo AuthorizationRequest.Prompt su CONSENT per richiedere il consenso all'utente anche se è stato concesso in precedenza.

  • Puoi anche utilizzare l'operatore bitmap "OR" (|) per impostare il campo AuthorizationRequest.Prompt su SELECT_ACCOUNT e consentire all'utente di selezionare un account prima che venga visualizzata la richiesta di consenso.

Chiamare il selettore Google

Analogamente alle app per computer, puoi personalizzare il selettore Google 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 impostati, 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 scegliere anche le cartelle.

Per saperne di più sui parametri facoltativi nelle app per computer, vedi Visualizzare il selettore Google.

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.