Загрузка изображения по API GMB возвращает "Fetching image failed".
У меня возникла проблема при использовании GMB API для загрузки медиа элементов.
В моем коде я могу успешно запросить и получить имя ресурса (resourceName), как объясняется в документации API. Затем я использую имя ресурса для загрузки изображения в виде байта. Это также работает очень хорошо, и я получаю ответ 200.
После этого я начинаю загрузку медиафайлов, используя шаги, описанные в API, однако на этот раз загрузка не удается и возвращается
{'error': {'code': 400, 'message': 'Запрос содержит недопустимый аргумент.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.mybusiness.v4.ValidationError', 'errorDetails': [{'code': 1000, 'message': 'Fetching image failed.'}]}]}}
.
Я попробовал выполнить те же шаги, используя Oauth Playground и отправив запрос curl, но он всегда терпит неудачу на последнем шаге, выдавая ту же ошибку.
Мой код, написанный на Python с использованием веб-фреймворка Django:
response = requests.post(f'https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/media:startUpload', headers=HEADERS)
if response.status_code == 200:
resource_name = response.json()['resourceName']
with open('C:/Users/nevog/Desktop/testimonial-2.jpg', 'rb') as f:
data = f.read()
params = {
'upload_type': 'media',
}
response = requests.post(f'https://mybusiness.googleapis.com/upload/v1/media/{resource_name}', data=data, params=params, headers=HEADERS)
if response.status_code == 200:
print("upload successful")
request_body = {
"mediaFormat": "PHOTO",
"locationAssociation": {
"category": "ADDITIONAL"
},
"dataRef": {
"resourceName": resource_name
},
}
response = requests.post(f'https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/media', json=request_body, headers=HEADERS)
if response.status_code == 200:
print("successful")
else:
print(response.json())
else:
print("Error uploading media")
else:
print("Error in fetching resource name", response.json())