1
votes

Comment accéder à Google Doc Api avec un compte de service?

Je souhaite que mon serveur Web demande Google Doc via un compte de service. La raison pour laquelle j'ai choisi le compte de service est que je ne veux aucune information de connexion de mon utilisateur.

J'ai essayé le code ci-dessous mais cela génère des erreurs L'appelant n'a pas d'autorisation .

SCOPES = ['https://www.googleapis.com/auth/documents']
    SERVICE_ACCOUNT_FILE = 'xxx.json'

    credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES
    )
    service = googleapiclient.discovery.build('docs', 'v1', credentials=credentials)
    response = service.documents().get(documentId='xxx').execute()


0 commentaires

3 Réponses :


0
votes

Si vous ne souhaitez pas usurper l'identité de l'utilisateur, vous devez partager le document avec le compte de service de Drive afin de lui donner l'autorisation de lecture / écriture


0 commentaires

0
votes

Réponse:

Vous devez vous assurer que le compte de service dispose des droits d'accès aux fichiers qu'il tente de lire / écrire.

Plus d'informations:

Le message d'erreur L'appelant n'a pas d'autorisation indique que le fichier avec l'ID documentID dispose des autorisations de partage de sorte que le compte de service que vous utilisez n'a pas l'autorisation de faites ce que vous lui demandez - que ce soit la lecture ou l’écriture.

Si l'usurpation d'identité de l'utilisateur est vraiment impossible pour vous, le fichier doit être accessible via l'une des options de partage suivantes:

Si le compte de service appartient à un domaine différent de celui de l'utilisateur propriétaire du fichier:

  • Activé - Public sur le Web
  • Activé - Toute personne disposant du lien

Si le compte de service appartient au même domaine que l'utilisateur:

  • Activé : tous les membres de votre organisation peuvent trouver et accéder
  • Activé : tous les membres de votre organisation disposant du lien

Vous pouvez également partager directement avec le compte de service en sélectionnant Désactivé - Personnes spécifiques et en saisissant l'adresse e-mail du compte de service dans le champ Personnes de la boîte de dialogue de partage du fichier lui-même. L'adresse e-mail du compte de service se trouve dans le projet GCP auquel il est associé - sur console.developers.google.com

J'espère que cela vous sera utile!

Références:


0 commentaires

0
votes

Instructions pour créer un compte de service et lire un document Google https://www.futurice.com/blog/read-goog-doc-using-service-account

Le document doit être partagé avec l'adresse e-mail du compte de service OU être partagé publiquement.


0 commentaires