Как добавить обогащение позиционирования к элементу мультимедиа в Google Photos API?

#google-api #google-photos-api

#google-api #google-photos-api

Вопрос:

Читая документацию Google Photos API о том, как добавлять элементы позиционирования в альбом, я не могу понять, каким должно быть тело запроса. https://developers.google.com/photos/library/guides/add-enrichments#supported-positioning

Я хочу перейти mediaItem-1 к тому, чтобы быть раньше mediaItem-2 в альбоме album-1 . Как должно выглядеть тело моего запроса?

 POST https://photoslibrary.googleapis.com/v1/albums/album-1:addEnrichment
{
    "newEnrichmentItem": {
        enrichment-to-be-added // What goes here?
    },
    "albumPosition": {
        "position": "after-media-item",
        "relativeMediaItemId": "mediaItem-2"
    }
}
 

РЕДАКТИРОВАТЬ: я не хочу повторно загружать элемент мультимедиа в облако, поэтому будет только одна версия одного и того же элемента мультимедиа.

Ответ №1:

Позиция может быть указана только при создании элемента мультимедиа или добавлении обогащений. Существующие элементы мультимедиа в альбоме не могут быть реорганизованы, поэтому важно установить положение элемента при его добавлении.

Ссылка: https://developers.google.com/photos/library/guides/add-enrichments#intro-positions

Метод, который вы используете, предназначен для обогащения альбома.

Типы обогащения:

  1. Обогащение текста

    Обогащение текста — это обычная текстовая строка, которая может быть вставлена для аннотирования альбома.

  2. Обогащение местоположения

    Обогащение местоположения — это маркер и название места, которые можно вставить для обозначения местоположения.

  3. Обогащение карты

    Обогащение карты — это карта с указанным источником и пунктом назначения, которую можно вставить в альбом.

Дополнительные ссылки: https://developers.google.com/photos/library/reference/rest/v1/albums/addEnrichment?hl=en_US#request-body


Пример создания элемента мультимедиа с position:
https://developers.google.com/photos/library/reference/rest/v1/mediaItems/batchCreate#request-body

 {
  "albumId": string,
  "newMediaItems": [
    {
      object (NewMediaItem)
    }
  ],
  "albumPosition": {
    object (AlbumPosition)
  }
}
 

Расположение альбомов

  • Позиция в альбоме, в которую добавляются элементы мультимедиа. Если не указано, элементы мультимедиа добавляются в конец альбома (согласно значению по умолчанию, то есть LAST_IN_ALBUM). Запрос завершается ошибкой, если это поле установлено, а идентификатор альбома не указан. Запрос также завершится ошибкой, если вы задали поле и не являетесь владельцем общего альбома.

(ОБНОВЛЕНИЕ)

Обходной путь:

  1. Удалить элемент MediaItem-2 в альбоме-1
  2. Создайте MediaItem-2 в альбоме-1 с параметром позиции, который разместит MediaItem-2 после MediaItem-1 https://developers.google.com/photos/library/reference/rest/v1/AlbumPosition#PositionType

Тело вашего запроса для создания элемента мультимедиа:

 {
  "albumId": album-1,
  "newMediaItems": [
    {
      object (mediaItem-2)
    }
  ],
  "albumPosition": {
    "position": AFTER_MEDIA_ITEM.
    "relativeMediaItemId": mediaItem-1
  }
}
 

Комментарии:

1. Не могли бы вы заменить позицию альбома и новый элемент мультимедиа значениями в моем примере?

2. то, что вы ищете, — это положение элемента мультимедиа (вы указываете, где разместить новый элемент мультимедиа в вашем альбоме). Это можно сделать только при создании нового элемента мультимедиа и включении параметров положения в тело запроса

3. тот, который вы использовали, предназначен для добавления обогащения в альбом (который также может иметь параметр позиции в теле запроса). Он установит позицию в альбоме, куда должно быть вставлено обогащение. Вы можете проверить типы и примеры обогащения по предоставленной ссылке.

4. Как упоминалось ранее, существующие элементы мультимедиа в альбоме не могут быть реорганизованы.

5. Можно ли добавить обогащение при добавлении элемента мультимедиа в другой альбом?