Los contactos permiten que tu Glassware reciba elementos del cronograma que no creó. Los usuarios deben compartir explícitamente un elemento del cronograma con tu contacto. Para ello, deben presionar el elemento del menú Compartir de una tarjeta.
Cómo funcionan
Una vez que creas un contacto para compartir, las tarjetas de la línea de tiempo para compartir siguen este flujo general:
- Crea un contacto y define los tipos de MIME que admite.
- Inserta el contacto en la línea de tiempo del usuario.
- El usuario recibe un elemento de la línea de tiempo que tiene un elemento de menú Compartir. El Glassware debe permitir explícitamente que los usuarios compartan sus elementos con este elemento de menú.
- El usuario presiona el elemento de la línea de tiempo, selecciona el elemento de menú Compartir y elige tu contacto.
- La API de Mirror crea una copia de la tarjeta de la línea de tiempo compartida, le otorga a tu contacto acceso a la copia y la inserta en la línea de tiempo del usuario. Tu Glassware no puede acceder al elemento original de la línea de tiempo.
- Si te suscribiste para recibir notificaciones de uso compartido, recibirás una carga útil que contiene la información de identificación de la tarjeta de la ruta. Luego, puedes recuperar el elemento de la línea de tiempo con Timeline.get.
- Modificas la tarjeta de cronograma compartido y actualizas la tarjeta de cronograma existente con Timeline.update.
Cuándo usarlos
De forma predeterminada, Glassware no puede acceder a los elementos de la línea de tiempo que no creó, por lo que los contactos permiten que Glassware comparta datos con otros Glassware con el consentimiento del usuario.
Existen dos formas principales en que tu Glassware puede usar los contactos:
Permite que los usuarios compartan los elementos de tu cronograma con otros contactos: Agrega el elemento de menú integrado
SHAREa una tarjeta de cronograma. Cuando los usuarios presionan el elemento del menú para compartir, Glass muestra una lista de posibles contactos con los que compartir.Permite que los usuarios compartan elementos de la línea de tiempo con tu Glassware: Crea un contacto que represente tu Glassware. Cuando los usuarios quieran compartir una tarjeta de la función Rutas, tu contacto aparecerá como una opción. También puedes declarar una lista de tipos de MIME aceptables para que tu contacto solo aparezca en las tarjetas que te interesan. Para recibir notificaciones cuando los usuarios compartan una tarjeta de cronograma con tu contacto, puedes suscribirte a las notificaciones del cronograma.
Cómo crear un contacto
Para permitir que los usuarios compartan elementos de la línea de tiempo con tu Glassware, inserta un contacto enviando una representación JSON de un contacto al extremo REST de inserción con el método POST.
Todos los contactos deben especificar un id, que identifica el contacto al Glassware que recibe las notificaciones. También debes especificar un displayName y, al menos, un imageUrls, que Glass usa para mostrar la información de contacto al usuario.
HTTP sin procesar
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
}
Cómo suscribirse a las notificaciones de uso compartido
La API de Mirror te permite suscribirte a notificaciones que se envían cuando el usuario realiza acciones específicas en un elemento de la línea de tiempo o cuando se actualiza la ubicación del usuario. Cuando te suscribes a una notificación, proporcionas una URL de devolución de llamada que procesa la notificación.
Se envía una notificación de la API de Mirror como una solicitud POST al extremo suscrito que contiene un cuerpo de solicitud JSON.
HTTP sin procesar
{
"collection": "timeline",
"itemId": "3hidvm0xez6r8_dacdb3103b8b604_h8rpllg",
"operation": "INSERT",
"userToken": "harold_penguin",
"verifyToken": "random_hash_to_verify_referer",
"userActions": [
{
"type": "SHARE"
}
]
}
El atributo itemId es el ID del elemento de la línea de tiempo compartido, que puedes usar con Timeline.get para obtener el elemento de la línea de tiempo.
En el siguiente ejemplo, se muestra un elemento de cronograma típico con un adjunto de foto:
{
"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>"
]
}
]
}
Si no se produjo ningún error, tu servicio debe responder a la API con un código de estado HTTP 200 OK.
Si tu servicio responde con un código de error, es posible que la API de Mirror intente volver a enviar la notificación a tu servicio.
Cómo recibir la transcripción de voz
Los usuarios pueden compartir el discurso transcrito con tu contacto a través del menú de voz principal. Actualmente, hay dos comandos por voz que tu contacto puede usar:
- "Toma una nota".
- "publicar una actualización"
Por ejemplo, un usuario puede contarnos sobre el próximo cumpleaños de Chipotle con la frase: "Ok Glass… publica una actualización en… Cat Stream… ¡Mañana es el cumpleaños de Chipotle!"


Para usar los comandos por voz, sigue estos pasos:
Especifica la propiedad
acceptCommandscon eltypeadecuado:{ ... "displayName": "Cat Stream", "id": "CAT_STREAM", "acceptCommands": [ {"type": "POST_AN_UPDATE"} ] }Suscríbete a las notificaciones de la línea de tiempo para recibir avisos cuando el texto transcrito esté disponible. Tu Glassware recibe una notificación cuando ocurre lo siguiente:
{ "collection": "timeline", "operation": "UPDATE", "userToken": "<USER_TOKEN>", "verifyToken": "<VERIFY_TOKEN>", "itemId": "<ITEM_ID>", "userActions": [ {"type": "LAUNCH"} ] }Usa
itemIdpara recuperar el elemento de la línea de tiempo:{ "id": "<ITEM_ID>", "text": "Chipotle's birthday is tomorrow", "recipients": [ {"id": "CAT_STREAM"} ] }Si más de un Glassware registra un contacto con el mismo comando por voz, Glass muestra un menú de segundo nivel en el que se indica el
displayNamede cada contacto. Luego, los usuarios pueden decir el nombre del contacto que elijan. Si eldisplayNamede tu contacto contiene caracteres impronunciables o no es fonético, usa la propiedadspeakableNamepara declarar la pronunciación esperada de tu contacto de uso compartido.
Subtítulos para fotos compartidas
Los usuarios pueden compartir fotos con tu Glassware con un texto que ingresan con la voz. El flujo de usuarios general es el siguiente:
- El usuario presiona un elemento de la ruta que contiene una foto, selecciona el elemento de menú Compartir y elige tu contacto.
- El usuario vuelve a presionar la pantalla en un breve período para agregar una leyenda a la foto.
- El usuario verbaliza un subtítulo.
- El elemento de la línea de tiempo se comparte con tu Glassware, como se describió anteriormente en Cómo funcionan. Además, la propiedad
textdel elemento de la línea de tiempo se establece con la leyenda transcrita del usuario.