Контакты позволяют вашей Glassware получать элементы временной шкалы, которые она не создавала. Пользователи должны явно поделиться элементом временной шкалы с вашим контактом, нажав на пункт меню «Поделиться» карточки.
Как они работают
После того как вы создадите контакт для обмена, обмен карточками временной шкалы следует следующему общему алгоритму:
- Создайте контакт и определите типы MIME, которые поддерживает ваш контакт.
- Вставьте контакт в хронику вашего пользователя.
- Пользователь получает элемент временной шкалы с пунктом меню «Поделиться» . Стеклянная посуда должна явно разрешать пользователям делиться своими предметами с помощью этого пункта меню.
- Пользователь касается элемента временной шкалы, выбирает пункт меню «Поделиться» и выбирает свой контакт.
- API зеркала создает копию общей карты временной шкалы, предоставляет вашему контакту доступ к копии и вставляет копию в временную шкалу пользователя. Ваша стеклянная посуда не может получить доступ к исходному элементу временной шкалы.
- Если вы подписались на уведомления об общем доступе , вы получите полезную информацию, содержащую идентификационную информацию карты временной шкалы. Затем вы можете получить элемент временной шкалы с помощью Timeline.get .
- Вы изменяете общую карту временной шкалы и обновляете существующую карту временной шкалы с помощью Timeline.update .
Когда их использовать
По умолчанию Glassware не может получить доступ к элементам временной шкалы, которые она не создавала, поэтому контакты разрешают обмениваться данными между Glassware с согласия пользователя.
Существует два основных способа использования контактов в стеклянной посуде:
Разрешите пользователям делиться элементами вашей хроники с другими контактами . Добавьте встроенный пункт меню
SHARE
на карточку временной шкалы. Когда пользователи нажимают на пункт меню «Поделиться», Glass отображает список возможных контактов, с которыми можно поделиться.Разрешить пользователям делиться элементами временной шкалы с вашей стеклянной посудой . Создайте контакт, который будет представлять вашу стеклянную посуду. Когда пользователи хотят поделиться карточкой временной шкалы, ваш контакт появляется в качестве опции. Вы также можете объявить список допустимых типов 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
}
Подписка на уведомления о совместном использовании
API зеркала позволяет вам подписаться на уведомления , которые отправляются, когда пользователь выполняет определенные действия над элементом временной шкалы или когда местоположение пользователя обновляется. Когда вы подписываетесь на уведомление, вы предоставляете URL-адрес обратного вызова, который обрабатывает уведомление.
Уведомление от 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
, если ошибок не произошло. Если ваша служба отвечает кодом ошибки, 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, как описано ранее в разделе «Как они работают» . Кроме того, свойство
text
элемента временной шкалы задается с помощью расшифрованного пользователем заголовка.