Действительные учетные данные аутентификации для Android Management API - PullRequest
1 голос
/ 13 марта 2019

Я учусь работать с API, и теперь я пытаюсь получить список устройств, запускающих скрипт Python, из консоли.Клиентская библиотека для Python установлена.

sample.py

import pprint
import sys
from apiclient.discovery import build
import json


api_key = 'AIzaSyBNv8k-zm_TkytbBMJVkR7_wjc'


service = build('androidmanagement', 'v1', developerKey=api_key)


response = service.enterprises().devices().list(parent="enterprises/LC03w9087868").execute()

pprint.pprint(response)

И я получил ошибку

HttpError 401 when requesting https://androidmanagement.googleapis.com/v1/enterprises/LC03w9087868/devices?key=AIzaSyBNv8k-zm_TkytbBMJVkR7_wjc&alt=json returned "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.">

Что мне нужно добавить ккод для автоматической аутентификации?

1 Ответ

3 голосов
/ 14 марта 2019

Сделав выводы из советов @ tehhowch , я нашел решение для моего вопроса.

Вместо ApiKey нужно использовать OAuth2ServiceAccount.Больше информации на этой странице .Пример кода для моей задачи:

import pprint
from apiclient.discovery import build
from google.oauth2 import service_account

SCOPES = ['https://www.googleapis.com/auth/androidmanagement']
SERVICE_ACCOUNT_FILE = '//home/y700/Downloads/Cupla-v3.json'

credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)


service = build('androidmanagement', 'v1', credentials=credentials)
response = service.enterprises().devices().list(parent="enterprises/LC0XXXXXX98").execute()

pprint.pprint(response)

Параметр SCOPES может быть выбран индивидуально из этого документа .

...