7

Sto utilizzando l'API di Google per creare un foglio di lavoro su Google Drive.Come modificare il nome "account di servizio" dell'API google/indirizzo e-mail

  • mia app ha un link che dice 'Download Per Google Doc'
  • L'applicazione invia un file di Google Docs e la condivide con l'utente.
  • L'utente può quindi vederlo in Google Documenti.

Questo funziona tutto bene.

Il problema è l'identità dell'account di servizio che condivide il documento. È un ID generato. Voglio che venga marchiato sulla mia app.

È possibile? -

It is this random number. I want it to be branded. Is this possible?

+0

L'utilizzo dell'API è associato a un progetto in un account Google? Quindi c'è qualcosa in comune tra l'id e il progetto? –

+0

Non puoi cambiarlo, l'indirizzo email dell'account di servizio viene creato da Google in cui sei bloccato. No, non puoi fornire il tuo, ma deve essere generato da Google. – DaImTo

+0

@DaImTo Metti quel commento come risposta e ti mando un assegno! –

risposta

5

Non è possibile modificare l'indirizzo e-mail account di servizio, né è possibile fornire un vero e proprio nome utente mondo ad esso. L'indirizzo email service account viene creato da Google nel numero Google Developer console.

enter image description here

L'unico modo per modificare l'indirizzo e-mail potrebbe essere quella di eliminarlo e crearne uno nuovo, ma ancora una volta si sarebbe bloccato con quella Google ha creato. Sospetto che l'ID client e l'indirizzo email siano una coppia utilizzata per l'identificazione della tua applicazione. Simile all'ID cliente e al segreto del client, ma non posso verificarlo.

Vedo il vostro punto sarebbe bello se potessimo.

1

Gli account di servizio Google consentono di impersonare un account utente esistente (per alcuni servizi). Non l'ho provato su Google Drive, ma l'ho usato con l'API degli strumenti per i Webmaster. Le istruzioni possono essere trovate qui: https://developers.google.com/identity/protocols/OAuth2ServiceAccount

Per riassumerle, quando si creano le credenziali dell'account di servizio è possibile specificare il parametro "sub" con "L'indirizzo di posta elettronica dell'utente per il quale l'applicazione richiede l'accesso delegato". L'account per cui stai richiedendo l'accesso deve esistere e avere l'autorizzazione per accedere ai servizi che stai richiedendo.

nel link qui sotto Google fornisce esempi per Java, Python e HTTP/REST, ecco l'esempio di Python:

credentials = SignedJwtAssertionCredentials(client_email, private_key, 
'https://www.googleapis.com/auth/sqlservice.admin', 
sub='[email protected]') 

sto usando la gemma rubino google-api-client (0.9.pre3) e il costruttore ServiceAccountCredentials non passare il parametro 'sub' alla sua classe genitore in modo che deve essere specificato in un altro passo:

client = Google::Auth::ServiceAccountCredentials.new(json_key_io: json_key_io, scope: scope) 
client.update!(sub: '[email protected]') 
client.fetch_access_token! 
service = Google::Apis::WebmastersV3::WebmastersService.new 
service.authorization = client 

utilizzando questo codice posso autenticare usando il mio account di servizio e ho accesso ai siti