Mi piacerebbe utilizzare Google Drive per funzionare come quasi CMS per un sito Web che sto facendo in modo che i proprietari dei contenuti possano modificare i loro contenuti utilizzando Google Drive. Mi piacerebbe utilizzare un account utente specifico che ha accesso a Google Drive (al momento di scrivere questo post, gli account di servizio NON hanno accesso diretto a Google Drive) ed è in grado di condividere documenti con i proprietari dei contenuti.Come autorizzo un account del servizio Drive di Google ad accedere a un account google senza utilizzare Google Apps?
Dopo la lettura attraverso l'API e tutorial, ho trovato la risposta nella delegazione: https://developers.google.com/drive/delegation
Il mio problema principale con questo processo è che il sito non è gestito da Google Apps e quindi la procedura descritta in 'dominio delegato "Autorizzazione estesa al tuo account di servizio" mi confondono: sembra che sia possibile gestire questa delega senza utilizzare Google Apps, ma dopo aver cercato le impostazioni in Google Drive per il mio account utente specifico, non riesco a trovare la capacità di autorizzare la rappresentazione.
un frammento di codice che sto utilizzando:
static public function getService() {
$key = file_get_contents(GOOGLEAPI_KEYFILE);
$auth = new Google_AssertionCredentials(GOOGLEAPI_SERVICE_EMAIL, array(GOOGLEAPI_SCOPE), $key);
$auth->setPrn(GOOGLEAPI_IMPERSONATION);
self::$apiClient = new Google_Client();
self::$apiClient->setUseObjects(true);
self::$apiClient->setAssertionCredentials($auth);
return new Google_DriveService(self::$apiClient);
}
GOOGLEAPI_IMPERSONATION
è l'account utente specifico e quando faccio funzionare questo codice, gli stati di eccezione:
errore rinfrescanti il token OAuth2, messaggio: '{"errore": "access_denied"}
Chiunque può offrire assistenza? Sto fraintendendo un concetto fondamentale di come oAuth funziona in termini di delega?
Steve, grazie per la risposta. Ho usato con successo l'account di servizio per caricare e leggere un documento senza problemi. Tuttavia, non è possibile accedere ai documenti caricati tramite l'interfaccia utente Web di Google Documenti, che è un requisito. Inoltre, il motivo per cui OAuth specifico dell'utente non funziona è perché voglio solo utilizzare l'account del servizio Google Docs come un bucket che contiene i documenti utilizzati per popolare il contenuto sul sito web, quindi se un utente di Google arriva sul sito, c'è non c'è bisogno di loro per il proprio account o altro. –
Correggere che gli account di servizio non abbiano accesso all'interfaccia utente Web. Se questo è un requisito hai alcune opzioni. Per prima cosa è sufficiente condividere i documenti con gli utenti che devono poterli accedere. Tutto ciò che richiede è conoscere il loro indirizzo email.In alternativa, puoi andare nella direzione opposta e creare i documenti in altri account, quindi condividere con l'account di servizio. Infine, se c'è un solo account che ha bisogno di accesso, autorizza l'uso di oauth normale con accesso offline e lascia che l'app agisca per conto di quell'utente. –
Grazie Steve - Vedrò di più quando tornerò a questo progetto –