#python #google-admin-sdk #google-directory-api
#python #google-admin-sdk #google-directory-api
Вопрос:
У меня есть облачная функция на GCP, которая работает более 18 месяцев. Внезапно неделю назад он перестал работать.
Код
import googleapiclient.discovery
adminDirectoryService = googleapiclient.discovery.build('admin', 'directory_v1', credentials = gsuiteCredentials, cache_discovery=False)
result = adminDirectoryService.users().watch(body=watchBody, projection=projection, event=eventType, maxResults=1, customer=gSuiteCutomerId, viewType=viewType).execute()
Исключение:
result = adminDirectoryService.users().watch(body=watchBody, projection=projection, event=eventType, maxResults=1, customer=gSuiteCutomerId, viewType=viewType).execute()
File "/env/lib/python3.7/site-packages/google_api_python_client-1.7.8-py3.7.egg/googleapiclient/discovery.py", line 723, in method
raise TypeError('Got an unexpected keyword argument "%s"' % name)
TypeError: Got an unexpected keyword argument "projection"
Я понятия не имею, что вызывает проблему. Я проверил документацию, и в ней четко указано, что projection
аргумент существует.
Кто-нибудь еще сталкивается с проблемой? Есть предложения?
Ответ №1:
Моя проблема устранена следующим образом: я удалил аргументы projection, maxResults и viewType из моего запроса, и все работало нормально.
Некоторое объяснение того, почему возникла проблема. googleapiclient.discovery создает API на основе предоставленного ему JSON. Похоже, что Google изменил возвращенный JSON, никому не сообщая об этих тормозных изменениях.
JSON можно найти здесь (для администратора, directory_v1)
Если кто-то использует другую версию или API. Я нашел источник, просмотрев код обнаружения здесь.
Я надеюсь, что это поможет кому-либо еще.
Редактировать
Похоже, проблема была исправлена Google. Обходное решение в этом ответе больше не требуется
Комментарии:
1. Я также отправил отчет об ошибке в Google, и его можно найти здесь issuetracker.google.com/issues/167259201