После получения списка элементов мультимедиа и списка альбомов от 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
?
Спасибо.
Согласно руководству (https://developers.google.com/photos/library/guides/manage-albums), к сожалению, вы можете добавлять только медиафайлы, загруженные вашим приложением, в альбомы, созданные вашим приложением. Элементы мультимедиа также должны находиться в библиотеке пользователя.
Это был запрос функции на issuetracker для организации существующих медиаэлементов (https://issuetracker.google.com/issues/109505022), но разработчики разрешают работать только с фото/альбомом приложения. Но теперь существует новый запрос функции именно по нашей проблеме, поэтому давайте начнем его вместе (https://issuetracker.google.com/issues/132274769)
Вы правы, просто процитировал их. И да, это как-то грустно.
Просто поясняю, так как я несколько раз пропустил это чтение --> Вы можете добавлять только элементы мультимедиа вы создаете/загружаете в альбомы вы создаете. Вот это боль :(