Контакты позволяют вашему Glassware получать элементы хронологии, которые они не создавали. Пользователи должны явно поделиться элементом хронологии с вашим контактом, нажав на пункт меню «Поделиться» в карточке.
Как они работают
После создания контакта для совместного доступа, процесс предоставления доступа к карточкам временной шкалы выглядит следующим образом:
- Создайте контакт и укажите MIME-типы, которые он поддерживает.
- Добавьте контакт в ленту пользователя.
- Пользователь получает элемент временной шкалы, имеющий пункт меню «Поделиться» . Glassware должна явно разрешать пользователям делиться своими элементами с помощью этого пункта меню.
- Пользователь нажимает на элемент хронологии, выбирает пункт меню «Поделиться» и выбирает ваш контакт.
- API Mirror создает копию общей карточки временной шкалы, предоставляет вашему контакту доступ к этой копии и вставляет копию в временную шкалу пользователя. Ваше программное обеспечение Glassware не может получить доступ к исходному элементу временной шкалы.
- Если вы подписаны на уведомления о публикации , вы получите данные, содержащие идентификационную информацию карточки временной шкалы. Затем вы можете получить доступ к элементу временной шкалы с помощью метода Timeline.get .
- Вы изменяете общую карточку временной шкалы и обновляете существующую карточку временной шкалы с помощью команды Timeline.update .
Когда их использовать
По умолчанию Glassware не может получить доступ к элементам хронологии, которые она не создавала, поэтому контакты разрешают обмен данными между устройствами Glassware с согласия пользователя.
В вашей стеклянной посуде контактные линзы могут использоваться двумя основными способами:
Разрешите пользователям делиться элементами вашей хронологии с другими контактами : добавьте пункт меню
SHAREна карточку хронологии. Когда пользователи нажимают на этот пункт меню, Glass отображает список контактов, с которыми можно поделиться.Разрешите пользователям делиться элементами хронологии с вашим Glassware : создайте контакт, представляющий ваш Glassware. Когда пользователи захотят поделиться карточкой хронологии, ваш контакт появится в качестве варианта. Вы также можете указать список допустимых MIME-типов , чтобы ваш контакт отображался только для тех карточек, которые вас интересуют. Чтобы получать уведомления о том, когда пользователи делятся карточкой хронологии с вашим контактом, вы можете подписаться на уведомления о хронологии.
Создание контакта
Чтобы пользователи могли делиться элементами хронологии в вашем Glassware, добавьте контакт, отправив POST-запрос с JSON-представлением контакта на конечную точку REST для вставки .
Для всех контактов необходимо указать идентификатор id , который идентифицирует контакт для Glassware, получающего уведомления. Также необходимо указать displayName и как минимум один imageUrls , которые Glass использует для отображения информации о контакте пользователю.
Необработанный HTTP
POST /mirror/v1/contacts HTTP/1.1
Authorization: Bearer {auth token}
Content-Type: application/json
Content-Length: {length}
{
"id": "harold"
"displayName": "Harold Penguin",
"iconUrl": "https://developers.google.com/glass/images/harold.jpg"
"priority": 7
}
Подписка на уведомления о публикации
API Mirror позволяет подписаться на уведомления, отправляемые при выполнении пользователем определенных действий с элементом временной шкалы или при обновлении местоположения пользователя. При подписке на уведомление вы указываете URL-адрес обратного вызова, который обрабатывает уведомление.
Уведомление от Mirror API отправляется в виде POST запроса на подписанную конечную точку, содержащего тело запроса JSON .
Необработанный HTTP
{
"collection": "timeline",
"itemId": "3hidvm0xez6r8_dacdb3103b8b604_h8rpllg",
"operation": "INSERT",
"userToken": "harold_penguin",
"verifyToken": "random_hash_to_verify_referer",
"userActions": [
{
"type": "SHARE"
}
]
}
Атрибут itemId — это ID общего элемента временной шкалы, который можно использовать с помощью метода Timeline.get для получения этого элемента. В следующем примере показан типичный элемент временной шкалы с прикрепленной фотографией:
{
"id": "3hidvm0xez6r8_dacdb3103b8b604_h8rpllg",
"attachments": [
{
"contentType": "image/jpeg",
"id": "<ATTACHMENT_ID>"
}
],
"recipients": [
{
"kind": "glass#contact",
"source": "api:<SERVICE_ID>",
"id": "<CONTACT_ID>",
"displayName": "<CONTACT_DISPLAY_NAME>",
"imageUrls": [
"<CONTACT_ICON_URL>"
]
}
]
}
Если ошибок не произошло, ваш сервис должен ответить API кодом состояния HTTP 200 OK . Если ваш сервис отвечает кодом ошибки, Mirror API может попытаться повторно отправить уведомление вашему сервису.
Получение транскрипции речи
Пользователи могут делиться расшифрованной речью с вашим контактом через главное голосовое меню. В настоящее время ваш контакт может использовать две голосовые команды:
- "Запишите это"
- "опубликовать обновление"
Например, пользователь может сообщить нам о предстоящем дне рождения Chipotle, используя фразу: "Окей, Гласс... опубликуй обновление для... Кошачьего стрима... День рождения Chipotle завтра!"


Для использования голосовых команд:
Укажите свойство
acceptCommandsс соответствующимtype:{ ... "displayName": "Cat Stream", "id": "CAT_STREAM", "acceptCommands": [ {"type": "POST_AN_UPDATE"} ] }Подпишитесь на уведомления о появлении расшифрованной речи. Ваше устройство Glassware получит уведомление, когда это произойдет:
{ "collection": "timeline", "operation": "UPDATE", "userToken": "<USER_TOKEN>", "verifyToken": "<VERIFY_TOKEN>", "itemId": "<ITEM_ID>", "userActions": [ {"type": "LAUNCH"} ] }Используйте
itemIdдля получения элемента временной шкалы:{ "id": "<ITEM_ID>", "text": "Chipotle's birthday is tomorrow", "recipients": [ {"id": "CAT_STREAM"} ] }Если несколько устройств Glassware регистрируют контакт с помощью одной и той же голосовой команды, Glass отображает меню второго уровня, показывающее
displayNameкаждого контакта. Затем пользователи могут произнести имя выбранного ими контакта. ЕслиdisplayNameвашего контакта содержит непроизносимые символы или не является фонетическим, используйте свойствоspeakableName, чтобы указать ожидаемое произношение вашего контакта, которым вы делитесь.
Подписи к опубликованным фотографиям
Пользователи могут делиться фотографиями с вашими устройствами Glassware, добавляя к ним голосовые подписи. Общий сценарий взаимодействия с пользователем выглядит следующим образом:
- Пользователь нажимает на элемент хронологии, содержащий фотографию, выбирает пункт меню «Поделиться» и выбирает ваш контакт.
- Пользователь повторно нажимает на изображение через короткий промежуток времени, чтобы добавить подпись к фотографии.
- Пользователь произносит субтитры.
- Элемент временной шкалы передается в ваше программное обеспечение Glassware, как описано ранее в разделе «Как они работают» . Кроме того, свойство
textэлемента временной шкалы устанавливается с помощью расшифрованной пользователем подписи.