Ich versuche, den neuen Android-Management-API für unsere Organisation zuzugreifen, aber ich laufe in Probleme Zugriff auf das API. Alles funktioniert gut, wenn Sie über den API-Explorer auf die API zugreifen. Um dies auf unserem Server zu laufen, ich habe ein neues Projekt in der Google-Cloud-Konsole erstellt und ein Dienstkonto dort erstellt. Ich habe den Schlüssel heruntergeladen und verwende ihn für lokale Tests auf meinem Computer. jedoch auf dem ersten signupUrl Anruf, erhalte ich einen 403-Fehler, die besagt: „Caller nicht Projekt zu verwalten ist berechtigt“. Das Dienstkonto Ich bin mit dem „Projekt Owner“ Rolle hat, sehe ich nicht, wie ich es noch mehr Privilegien geben kann ...Failing android Managements Anmeldungen URL erstellen
Der Code Ich verwende:
def initial_enterprise_user(request):
enterprise_token = request.GET.get('enterpriseToken')
usr = request.user
scopes = ['https://www.googleapis.com/auth/androidmanagement']
credentials = ServiceAccountCredentials.from_json_keyfile_name(settings.SERVICE_ACCOUNT, scopes=scopes)
if enterprise_token is None:
androidmanagement = build('androidmanagement', 'v1', credentials=credentials)
resp = androidmanagement.signupUrls().create(projectId=settings.ANDROID_MGMT_PROJECTID).execute()
if resp.status_code == 200:
usr.signup_url_name = resp.json()['name']
usr.save()
return render(request, 'initial_login.html', {'response_url': resp.json()['url']})
else:
return HttpResponse('Failed to get signup url')
else:
# handle token present
Ist das Projekt des Dienstkontos dasselbe wie das Projekt, auf das Sie zugreifen möchten (settings.ANDROID_MGMT_PROJECTID)? – Fred
Ja ist es. Ich war mit einem anderen Projekt, das in einem anderen Gerät Management POC verwendet wurde vor und versuchte auch, ein völlig neues Projekt. Ich habe die Android Management API zu diesem Projekt hinzugefügt, aber es scheint nicht zu funktionieren ... – stamppot
Ich versuchte zu reproduzieren, konnte aber nicht. Wenn ich ein Dienstkonto mit der Rolle "Besitzer" oder "Editor" erstelle, funktioniert es einwandfrei, indem ich die Methode signupUrls.create mit dem Projekt anrufe, mit dem das Dienstkonto erstellt wurde. Überprüfen Sie vielleicht in der IAM-Konfiguration, dass die Dienstkonten die richtigen Rollen für das richtige Projekt haben (https://console.cloud.google.com/iam-admin/iam/)? – Fred