Требуется авторизация
Обновляет элемент временной шкалы на месте. См. пример .
Этот метод поддерживает URI /upload и принимает загруженные медиафайлы со следующими характеристиками:
- Максимальный размер файла: 10 МБ.
- Допустимые типы MIME мультимедиа:
audio/*
,image/*
,video/*
Запрос
HTTP-запрос
Этот метод обеспечивает функцию загрузки мультимедиа через два отдельных URI. Более подробную информацию см. в документе о загрузке мультимедиа .
- URI загрузки для запросов на загрузку мультимедиа:
PUT https://www.googleapis.com/upload/mirror/v1/timeline/id
- URI метаданных для запросов только метаданных:
PUT https://www.googleapis.com/mirror/v1/timeline/id
Параметры
Имя параметра | Ценить | Описание |
---|---|---|
Параметры пути | ||
id | string | Идентификатор элемента временной шкалы. |
Обязательные параметры запроса | ||
uploadType | string | Тип запроса на загрузку по URI /upload . Приемлемые значения:
|
Авторизация
Этот запрос требует авторизации хотя бы с одной из следующих областей ( подробнее об аутентификации и авторизации читайте здесь ).
Объем |
---|
https://www.googleapis.com/auth/glass.timeline |
https://www.googleapis.com/auth/glass.location |
Тело запроса
В тексте запроса укажите ресурс Timeline со следующими свойствами в качестве метаданных. Дополнительную информацию см. в документе о загрузке мультимедиа .
Имя свойства | Ценить | Описание | Примечания |
---|---|---|---|
Дополнительные свойства | |||
bundleId | string | Идентификатор пакета для этого элемента. Службы могут указывать BundleId для группировки множества элементов вместе. Они отображаются под одним элементом верхнего уровня на устройстве. | записываемый |
canonicalUrl | string | Канонический URL-адрес, указывающий на каноническую/высококачественную версию данных, представленных элементом временной шкалы. | записываемый |
creator | nested object | Пользователь или группа, создавшая этот элемент. | записываемый |
displayTime | datetime | Время, которое должно отображаться при просмотре этого элемента на временной шкале, отформатированное в соответствии с RFC 3339. Временная шкала этого пользователя сортируется в хронологическом порядке по времени отображения, поэтому это также определяет, где элемент отображается на временной шкале. Если это не установлено службой, по умолчанию отображается updated время. | записываемый |
html | string | HTML-содержимое этого элемента. Если для элемента указаны и text , и html , html будет отображаться на временной шкале.Разрешенные элементы HTML . Вы можете использовать эти элементы в своих карточках временной шкалы.
Заблокированные элементы HTML . Эти элементы и их содержимое удаляются из полезных данных HTML.
Другие элементы : все элементы, не указанные в списке, удаляются, но их содержимое сохраняется. | записываемый |
isBundleCover | boolean | Является ли этот товар чехлом для комплекта. Если элемент помечен как обложка пакета, он будет точкой входа в набор элементов, имеющих тот же bundleId , что и этот элемент. Он будет отображаться только на основной временной шкале, а не в открытом пакете .На основной временной шкале отображаются следующие элементы:
| записываемый |
location | nested object | Географическое местоположение, связанное с этим элементом. | записываемый |
menuItems[] | list | Список пунктов меню, который будет представлен пользователю при выборе этого пункта на временной шкале. | записываемый |
menuItems[]. action | string | Управляет поведением, когда пользователь выбирает пункт меню. Допустимые значения:
| записываемый |
menuItems[]. id | string | Идентификатор этого пункта меню. Он генерируется приложением и рассматривается как непрозрачный токен. | записываемый |
menuItems[]. payload | string | Общая полезная нагрузка, значение которой меняется в зависимости от действия этого MenuItem.
| записываемый |
menuItems[]. removeWhenSelected | boolean | Если для элемента меню CUSTOM установлено значение true, этот элемент будет удален из меню после его выбора. | записываемый |
menuItems[]. values[] | list | Для CUSTOM элементов — список значений, управляющих внешним видом пункта меню в каждом из его состояний. Необходимо указать значение для состояния DEFAULT . Если состояния PENDING или CONFIRMED отсутствуют, они не будут отображаться. | записываемый |
menuItems[].values[]. displayName | string | Имя, отображаемое для пункта меню. Если вы укажете это свойство для встроенного пункта меню, контекстная голосовая команда по умолчанию для этого пункта меню не отображается. | записываемый |
menuItems[].values[]. iconUrl | string | URL-адрес значка, который будет отображаться вместе с пунктом меню. | записываемый |
menuItems[].values[]. state | string | Состояние, к которому применяется это значение. Допустимые значения:
| записываемый |
notification | nested object | Управляет отображением уведомлений об этом элементе на устройстве. Если это отсутствует, уведомление не будет создано. | записываемый |
notification. deliveryTime | datetime | Время, в которое должно быть доставлено уведомление. | записываемый |
notification. level | string | Описывает, насколько важно уведомление. Допустимые значения:
| записываемый |
recipients[] | list | Список пользователей или групп, которым был предоставлен доступ к этому элементу. | записываемый |
sourceItemId | string | Непрозрачная строка, которую можно использовать для сопоставления элемента временной шкалы с данными в вашем собственном сервисе. | записываемый |
speakableText | string | Озвученная версия содержания этого элемента. Наряду с элементом меню READ_ALOUD используйте это поле для ввода текста, который будет более четким при чтении вслух, или для предоставления расширенной информации к тому, что отображается визуально на Glass.Glassware также должен указать поле «speakableType», которое будет произноситься перед этим текстом в тех случаях, когда дополнительный контекст полезен, например, когда пользователь запрашивает чтение элемента вслух после уведомления. | записываемый |
speakableType | string | Разговорное описание типа этого предмета. Об этом будет объявлено пользователю до прочтения содержимого элемента в тех случаях, когда дополнительный контекст полезен, например, когда пользователь запрашивает чтение элемента вслух после уведомления. Это должна быть короткая и простая именная фраза, например «Электронная почта», «Текстовое сообщение» или «Обновление новостей Daily Planet». Glassware рекомендуется заполнять это поле для каждого элемента временной шкалы, даже если элемент не содержит говорящего текста или текста, чтобы пользователь мог узнать тип элемента, не глядя на экран. | записываемый |
text | string | Текстовое содержимое этого элемента. | записываемый |
title | string | Название этого элемента. | записываемый |
Ответ
В случае успеха этот метод возвращает ресурс Timeline в теле ответа.
Примеры
Примечание. Примеры кода, доступные для этого метода, не представляют все поддерживаемые языки программирования (список поддерживаемых языков см. на странице клиентских библиотек ).
Ява
Использует клиентскую библиотеку Java .
import com.google.api.services.mirror.Mirror; import com.google.api.services.mirror.model.NotificationConfig; import com.google.api.services.mirror.model.TimelineItem; import java.io.IOException; public class MyClass { // ... /** * Update a timeline item in the user's Glass with an optional notification and attachment. * * @param service Authorized Mirror service. * @param itemId ID of the timeline item to update. * @param newText timeline item's text. * @param newNotificationLevel Optional notification level, supported values * are {@code null} and "AUDIO_ONLY". * @return Updated timeline item on success, {@code null} otherwise. */ public static TimelineItem updateTimelineItem(Mirror service, String itemId, String newText, String newNotificationLevel) { try { // First retrieve the timeline item from the API. TimelineItem timelineItem = service.timeline().get(itemId).execute(); // Update the timeline item's metadata. timelineItem.setText(newText); if (newNotificationLevel != null && newNotificationLevel.length() > 0) { timelineItem.setNotification(new NotificationConfig().setLevel(newNotificationLevel)); } else { timelineItem.setNotification(null); } return service.timeline().update(itemId, timelineItem).execute(); } catch (IOException e) { System.err.println("An error occurred: " + e); return null; } } // ... }
.СЕТЬ
Использует клиентскую библиотеку .NET .
using System; using System.IO; using Google.Apis.Mirror.v1; using Google.Apis.Mirror.v1.Data; public class MyClass { // ... /// <summary> /// Update a timeline item in the user's Glass with an optional /// notification and attachment. /// </summary> /// <param name='service'>Authorized Mirror service.</param> /// <param name='itemId'>ID of the timeline item to update.</param> /// <param name='newText'>Timeline Item's text content.</param> /// <param name='newNotificationLevel'> /// Optional notification level, supported values are null and /// "AUDIO_ONLY". /// </param> /// <returns> /// Updated timeline item on success, null otherwise. /// </returns> public static TimelineItem UpdateTimelineItem(MirrorService service, String itemId, String newText, String newNotificationLevel) { try { // First retrieve the timeline item from the API. TimelineItem timelineItem = service.Timeline.Get(itemId).Fetch(); // Update the timeline item's metadata. timelineItem.Text = newText; if (!String.IsNullOrEmpty(newNotificationLevel)) { timelineItem.Notification = new NotificationConfig() { Level = newNotificationLevel }; } else { timelineItem.Notification = null; } return service.Timeline.Update(timelineItem, itemId).Fetch(); } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); return null; } } // ... }
PHP
Использует клиентскую библиотеку PHP .
/** * Update a timeline item in the user's Glass with an optional * notification and attachment. * * @param Google_MirrorSservice $service Authorized Mirror service. * @param string $itemId ID of the timeline item to update. * @param string $newText timeline item's text (can be HTML content). * @param string $newNotificationLevel Optional notification level, * supported values are {@code null} and "AUDIO_ONLY". * @return Google_TimelineItem Updated timeline item on success, * null otherwise. */ function updateTimelineItem($service, $itemId, $newText, $newNotificationLevel) { try { $timelineItem = $service->timeline->get($itemId); $timelineItem->setText($newText); if ($notificationlevel != null) { $notification = new Google_NotificationConfig(); $notification->setLevel($newNotificationLevel); $timelineItem->setNotification($notification); } else { $timelineItem->setNotification(null); } return $service->timeline->update($itemId, $timelineItem); } catch (Exception $e) { print 'An error occurred: ' . $e->getMessage(); return null; } }
Питон
Использует клиентскую библиотеку Python .
import io from apiclient import errors from apiclient.http import MediaIoBaseUpload # ... def update_timeline_item(service, item_id, new_text, new_notification_level=None): """Update a timeline item in the user's Glass. Args: service: Authorized Mirror service. item_id: ID of the timeline item to update. new_text: Timeline item's text (can be HTML content). new_content_type: Optional attachment's content type (supported content types are 'image/*', 'video/*' and 'audio/*'). new_attachment: Optional attachment as data string. new_notification_level: Optional notification level, supported values are None and 'AUDIO_ONLY'. Returns: Updated timeline item on success, None otherwise. """ try: # First retrieve the timeline item from the API. timeline_item = service.timeline().get(id=item_id).execute() # Update the timeline item's metadata. timeline_item['text'] = new_text if new_notification_level: timeline_item['notification'] = {'level': new_notification_level} elif 'notification' in timeline_item: timeline_item.pop('notification') return service.timeline().update(id=item_id, body=timeline_item).execute() except errors.HttpError, error: print 'An error occurred: %s' % error return None
Руби
Использует клиентскую библиотеку Ruby .
## # Update a timeline item in the user's glass. # # @param [Google::APIClient] client # Authorized client instance. # @param [String] item_id # ID of the timeline item to update. # @param [String] new_text # Timeline item's new text. # @param [String] new_notification_level # Optional new notification level, supported values are nil and 'AUDIO_ONLY'. # @return [Google::APIClient::Schema::Mirror::V1::TimelineItem] # Updated timeline item instance if successful, nil otherwise. def update_timeline_item(client, item_id, new_text, new_notification_level) mirror = client.discovered_api('mirror', 'v1') result = client.execute( :api_method => mirror.timeline.get, :parameters => { 'id' => item_id }) if result.success? timeline_item = result.data timeline_item.text = new_text if new_notification_level timeline_item.notification = { 'level' => new_notification_level } else timeline_item.notification = nil end result = client.execute( :api_method => mirror.timeline.update, :body_object => timeline_item, :parameters => { 'id' => item_id }) if result.success? return result.data end end puts "An error occurred: #{result.data['error']['message']}" end
Идти
Использует клиентскую библиотеку Go .
import ( "code.google.com/p/google-api-go-client/mirror/v1" "fmt" ) // UpdateTimelineItem updates a timeline item in the user's timeline with an // optional notification and attachment. func UpdateTimelineItem(g *mirror.Service, itemId string, newNotificationLevel string) ( *mirror.TimelineItem, error) { t, err := g.Timeline.Get(itemId).Do() if err != nil { fmt.Printf("An error occurred: %v\n", err) return nil, err } t.Text = newText if newNotificationLevel != "" { t.Notification = &mirror.NotificationConfig{Level: newNotificationLevel} } else { t.Notification = nil } r, err := g.Timeline.Update(itemId, t).Do() if err != nil { fmt.Printf("An error occurred: %v\n", err) return nil, err } return r, nil }
Необработанный HTTP
Не использует клиентскую библиотеку.
PUT /mirror/v1/timeline/timeline item id HTTP/1.1 Host: www.googleapis.com Authorization: Bearer auth token Content-Type: application/json Content-Length: 26 { "text": "Hello world" }