Google Фото возвращает «ошибка 400: запрос содержит недопустимый идентификатор элемента мультимедиа. (INVALID_ARGUMENT)» при добавлении элемента мультимедиа в существующий альбом

После получения списка элементов мультимедиа и списка альбомов от API Google Фото (с помощью Go и Google Photo REST API) добавление элементов в альбом возвращает ошибку.

(Примечание: использование веб-интерфейса для добавления элементов в альбом работает нормально).

Код для добавления медиафайла в альбом:

func (a Album) AddItems(items ...MediaItem) error {
    rel := &url.URL{Path: fmt.Sprintf("/v1/albums/%s:batchAddMediaItems", a.ID)}
    u := a.service.baseURL.ResolveReference(rel)
    for len(items) > 0 {
        ids := []string{}
        for i := 0; i < 50 && i < len(items); i++ {
            ids = append(ids, items[i].ID)
        }
        items = items[len(ids):]
        toAdd := map[string]interface{}{
            "mediaItemIds": ids,
        }
        bodyData, err := json.Marshal(toAdd)
        if err != nil {
            return err
        }
        req, err := http.NewRequest("POST", u.String(), bytes.NewBuffer(bodyData))
        if err != nil {
            return err
        }
        resp, err := a.service.client.Do(req)
        if err != nil {
            return err
        }
        defer resp.Body.Close()
        respErr := struct {
            Error ServerError `json:"error"`
        }{}
        body, err := ioutil.ReadAll(resp.Body)
        if err != nil {
            return err
        }
        err = json.Unmarshal(body, &respErr)
        if err != nil {
            return err
        }
        err = respErr.Error.Error()
        if err != nil {
            return err
        }
    }
    return nil
}

Сервер возвращает следующую ошибку:

error 400: Request contains an invalid media item id. (INVALID_ARGUMENT). 

Идентификатор элемента мультимедиа копируется из поля идентификатора Представление JSON элемента мультимедиа, возвращенного из поисковый запрос. Другие поля элемента мультимедиа кажутся допустимыми (например, ProductURL).

Что не так в этом batchAddMediaItems запросе? или как получить действительный идентификатор элемента мультимедиа, подходящий для batchAddMediaItems?

Спасибо.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
1 565
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно руководству (https://developers.google.com/photos/library/guides/manage-albums), к сожалению, вы можете добавлять только медиафайлы, загруженные вашим приложением, в альбомы, созданные вашим приложением. Элементы мультимедиа также должны находиться в библиотеке пользователя.

Это был запрос функции на issuetracker для организации существующих медиаэлементов (https://issuetracker.google.com/issues/109505022), но разработчики разрешают работать только с фото/альбомом приложения. Но теперь существует новый запрос функции именно по нашей проблеме, поэтому давайте начнем его вместе (https://issuetracker.google.com/issues/132274769)

Просто поясняю, так как я несколько раз пропустил это чтение --> Вы можете добавлять только элементы мультимедиа вы создаете/загружаете в альбомы вы создаете. Вот это боль :(

San Jay 13.07.2020 00:15

Вы правы, просто процитировал их. И да, это как-то грустно.

recvec 13.07.2020 12:05

Другие вопросы по теме