Контакты позволяют устройству Glassware получать элементы временной шкалы, которые оно не создавало. Пользователи должны явным образом поделиться элементом временной шкалы с вашим контактом, коснувшись пункта меню «Поделиться» карты.
Как они работают
После того как вы создадите общий контакт, общий доступ к карточкам временной шкалы будет осуществляться следующим образом:
- Создайте контакт и определите типы MIME, которые поддерживает ваш контакт.
- Вставьте контакт в временную шкалу вашего пользователя.
- Пользователь получает элемент временной шкалы с пунктом меню «Поделиться» . Стеклянная посуда должна явно разрешать пользователям делиться своими предметами с этим пунктом меню.
- Пользователь касается элемента временной шкалы, выбирает пункт меню «Поделиться» и выбирает ваш контакт.
- Mirror API создает копию общей карты временной шкалы, предоставляет вашему контакту доступ к копии и вставляет копию в временную шкалу пользователя. Ваша стеклянная посуда не может получить доступ к исходному элементу временной шкалы.
- Если вы подписались на рассылку уведомлений , вы получите полезную нагрузку, содержащую идентифицирующую информацию о карточке временной шкалы. Затем вы можете получить элемент временной шкалы с помощью Timeline.get .
- Вы изменяете общую карточку временной шкалы и обновляете существующую карточку временной шкалы с помощью Timeline.update .
Когда их использовать
По умолчанию Glassware не может получить доступ к элементам временной шкалы, которые она не создавала, поэтому контакты разрешают обмен данными между Glassware с согласия пользователя.
Есть два основных способа, которыми ваша посуда может использовать контакты:
Разрешить пользователям делиться элементами вашей хроники с другими контактами . Добавьте пункт встроенного меню
SHARE
в карточку хронологии. Когда пользователи касаются элемента меню «Поделиться», Glass отображает список возможных контактов, с которыми можно поделиться.Разрешить пользователям делиться элементами временной шкалы с вашим Glassware : создайте контакт, представляющий ваш Glassware. Когда пользователи хотят поделиться карточкой временной шкалы, ваш контакт появляется в качестве опции. Вы также можете объявить список допустимых типов MIME , чтобы ваш контакт отображался только для карточек, которые вас интересуют. Чтобы получать уведомления о том, когда пользователи совместно используют карточку временной шкалы с вашим контактом, вы можете подписаться на уведомления временной шкалы.
Создание контакта
Чтобы пользователи могли обмениваться элементами временной шкалы с вашим Glassware, вставьте контакт, отправив представление 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
}
Подписка на уведомления об обмене
Mirror API позволяет подписаться на уведомления , которые отправляются, когда пользователь выполняет определенные действия с элементом временной шкалы или когда местоположение пользователя обновляется. Когда вы подписываетесь на уведомление, вы предоставляете 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 с помощью фразы: «Хорошо, Стекло… опубликуй обновление… Cat Stream… День рождения Chipotle завтра!»
Чтобы использовать голосовые команды:
Укажите свойство
acceptCommands
с соответствующимtype
:{ ... "displayName": "Cat Stream", "id": "CAT_STREAM", "acceptCommands": [ {"type": "POST_AN_UPDATE"} ] }
Подпишитесь на уведомления о временной шкале, чтобы получать уведомления о доступности транскрибированной речи. Ваша стеклянная посуда получает уведомление, когда это происходит:
{ "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
элемента временной шкалы задается расшифрованным заголовком пользователя.