started - oauth2client python
Google API Python cliente no autorizado: cliente no autorizado o alcance solicitado (2)
Me aparece este error al intentar ejecutar mi código:
oauth2client.client.AccessTokenRefreshError: unauthorized_client: Unauthorized client or scope in request.
Aquí está mi código:
import json
import requests
import httplib2
from oauth2client.client import SignedJwtAssertionCredentials
from apiclient.discovery import build
if __name__ == ''__main__'':
json_key_file = ''my-key.json''
with open(json_key_file) as json_file:
json_data = json.load(json_file)
credential = SignedJwtAssertionCredentials(json_data[''client_email''], json_data[''client_email''], json_data[''private_key''], scope=[''https://www.googleapis.com/auth/admin.directory.user'',''https://www.googleapis.com/auth/admin.directory.user.readonly''], sub=''[email protected]'')
http = httplib2.Http()
http = credential.authorize(http)
service = build(''admin'', ''directory_v1'', http=http)
data = service.users().list(domain=''domain.com'').execute()
print data
Tengo el alcance establecido correctamente en mi consola y tengo mi SDK de administrador habilitado en mi consola. Mi correo electrónico es un súper administrador con acceso a todos los privilegios de la API de administración.
¿Por qué recibiría este error?
Lo averigué:
Debe usar la ID del cliente de su "Consola de Desarrolladores" como Nombre del Cliente en "Administrar acceso de cliente API" cuando configure sus ámbitos de API.
https://developers.google.com/+/domains/authentication/delegation
También debe ir a G Suite Admin para el dominio, luego hacer clic en Seguridad, Mostrar más, Configuración avanzada, Administrar acceso de cliente API (o simplemente navegar hasta este momento).
A continuación, agregue una entrada que en el nombre del Cliente tenga su nombre de cliente y el Alcance tenga su alcance. Por ejemplo, el mío se ve así, no necesitas todos los ámbitos, solo el adecuado para tu propósito: