2014-12-03 13 views
7

otrzymuję ten błąd, gdy próbuje uruchomić mój kod: Google API Python unauthorized_client: Nieuprawnione klient lub zakres we wniosku

oauth2client.client.AccessTokenRefreshError: unauthorized_client: Unauthorized client or scope in request. 

Oto mój kod:

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 

Mam zestaw zakres poprawnie w mojej konsoli, a mój zestaw administracyjny SDK jest włączony w mojej konsoli. Mój e-mail jest superadministratorem z dostępem do wszystkich uprawnień administracyjnych interfejsu API.

Dlaczego otrzymam ten błąd?

+0

https://developers.google.com/admin-sdk/directory/v1/guides/ delegacja Myślę, że zapomniałeś kroku pierwszego w części Tworzenie konta usługi i poświadczenia. – DaImTo

Odpowiedz

1

Musisz również przejść do Administracji G Suite dla domeny, a następnie kliknąć Zabezpieczenia, Pokaż więcej, Ustawienia zaawansowane, Zarządzaj dostępem klientów Api (lub po prostu przejdź do this w momencie pisania tego tekstu).

Następnie dodaj pozycję, która w nazwie klienta zawiera nazwę klienta, a zakres ma swój zakres. Na przykład kopalnia wygląda tak, że nie potrzebujemy wszystkich zakresów tylko jednego odpowiedniego dla celów:

enter image description here

Powiązane problemy