无法创建 Android 管理注册 URL

sta*_*pot 4 python mdm android-for-work cosu android-management-api

我正在尝试为我们的组织访问新的 Android Management API,但在访问 API 时遇到问题。通过 API 浏览器访问 API 时,一切运行正常。为了在我们的服务器上运行它,我在 Google 云控制台中创建了一个新项目,并在那里创建了一个服务帐户。我下载了密钥并使用它在我的机器上进行本地测试。然而,在第一次 signupUrl 调用时,我收到 403 错误,指出:“调用者无权管理项目。”。我正在使用的服务帐户具有“项目所有者”角色,我不知道如何赋予它更多权限......

我正在使用的代码:

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
Run Code Online (Sandbox Code Playgroud)

sta*_*pot 5

我在系统中创建了一个新项目,在启用Android管理API之前创建了服务帐户。该服务帐户是在选择“所有者”角色的情况下创建的。这似乎在应用程序中启用了正确的顺序,因为它现在正在工作。之前,我已将 API 添加到项目中,然后创建我的服务帐户,然后将其链接到 API