Загрузка изображения по 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())
Вернуться на верх