Contactos

Los contactos permiten que Glassware reciba elementos del cronograma que no creó. Los usuarios deben compartir explícitamente un elemento del cronograma con tu contacto presionando el ícono de una tarjeta el elemento del menú Compartir.

Cómo funcionan

Una vez que creas un contacto de uso compartido, el uso compartido de tarjetas de cronograma sigue este flujo general:

  1. Crea un contacto y define los tipos de MIME que admite tu contacto.
  2. Inserta el contacto en la línea de tiempo del usuario.
  3. El usuario recibe un elemento de cronograma que tiene el elemento de menú Compartir. Los productos de cristal deben permitir explícitamente que los usuarios compartan sus elementos con este elemento del menú.
  4. El usuario presiona el elemento de cronograma, selecciona el elemento de menú Compartir y selecciona tu contacto.
  5. La API de Mirror crea una copia de la tarjeta compartida del cronograma, le da a tu contacto acceso a la copia y la inserta en el cronograma del usuario. Tu Glass no puede acceder al elemento original del cronograma.
  6. Si se suscribieron para compartir notificaciones recibes una carga útil que contiene la información de identificación de la tarjeta de línea de tiempo. Luego, puedes recuperar el elemento del cronograma con Timeline.get.
  7. Modificas la tarjeta de cronograma compartido y actualizas la existente. con Timeline.update.

Cuándo usarlos

De forma predeterminada, Glassware no puede acceder a elementos del cronograma que no creó. Los contactos permiten que Glassware comparta datos de Glassware con el consentimiento del usuario.

Existen dos formas principales en las que Glassware puede utilizar los contactos:

  • Permitir que los usuarios compartan los elementos de tu cronograma con otros contactos: Agrega el elemento de menú integrado de SHARE a una tarjeta de cronograma. Cuando los usuarios presionan el elemento del menú para compartir, Glass muestra una lista de contactos posibles para compartir.

  • Permitir que los usuarios compartan elementos del cronograma con Glassware: Crear un contacto que representa tu Glassware. Cuando los usuarios quieren compartir una tarjeta de cronograma, el contacto aparece 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 comparten una tarjeta de rutas con tu contacto, puedes hacer lo siguiente: se suscriben a las notificaciones de rutas.

Cómo crear un contacto

Para permitir que los usuarios compartan elementos del cronograma con Glassware, inserta un contacto POST un Representación JSON de un contacto para el extremo de REST.

Todos los contactos deben especificar un id, que identifica el contacto con Glassware. al recibir las notificaciones. También debes especificar 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
}

Suscríbete a las notificaciones de uso compartido

La API de Mirror te permite suscribirse a las notificaciones que se envían cuando el usuario realiza acciones específicas en un Elemento de cronograma o cuándo la ubicación del usuario se actualizó. Cuando te suscribes a una notificación, proporcionar una URL de devolución de llamada que procese 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 compartido del cronograma, que puedes usar. con Timeline.get para obtener el elemento del cronograma. En el siguiente ejemplo, se muestra un elemento típico del cronograma con una foto adjunta:

{
  "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>"
          ]
      }
  ]
}

Tu servicio debe responder a la API con un estado HTTP 200 OK el código si no se produce un error. Si tu servicio responde con un código de error, la API de Mirror podría vuelve a enviar la notificación a tu servicio.

Recibiendo transcripción de voz

Los usuarios pueden compartir la transcripción de la voz con tu contacto a través del menú de voz principal. Actualmente, hay dos comandos por voz que tu contacto puede usar:

  • "tomar una nota"
  • "publicar una actualización"

Por ejemplo, un usuario puede contarnos sobre la API de próximo cumpleaños con la frase: "Ok Glass... publicar una actualización para... Flujo de gatos... El cumpleaños de Chipotle es mañana".

Para usar comandos por voz, haz lo siguiente:

  1. Especifica el acceptCommands propiedad con la type:

    {
      ...
    
      "displayName": "Cat Stream",
      "id": "CAT_STREAM",
      "acceptCommands": [
        {"type": "POST_AN_UPDATE"}
      ]
    }
    
  2. Suscribirse a las notificaciones de rutas para recibir una notificación de que la transcripción de la voz está disponible. Tu Glassware recibe una notificación cuando esto ocurre:

    {
      "collection": "timeline",
      "operation": "UPDATE",
      "userToken": "<USER_TOKEN>",
      "verifyToken": "<VERIFY_TOKEN>",
      "itemId": "<ITEM_ID>",
      "userActions": [
        {"type": "LAUNCH"}
      ]
    }
    
  3. Usa itemId para recuperar el elemento de cronograma:

    {
      "id": "<ITEM_ID>",
      "text": "Chipotle's birthday is tomorrow",
      "recipients": [
        {"id": "CAT_STREAM"}
      ]
    }
    
  4. Si más de un elemento Glassware registra un contacto con el mismo comando por voz, Glass muestra un menú de segundo nivel en el que se muestran displayName de cada contacto. Los usuarios pueden decir el contacto que deseen. Si el contacto displayName contiene caracteres irpronunciables o no es fonético, utiliza el propiedad speakableName para declarar la pronunciación esperada del contacto para compartir contenido.

Subtítulos para fotos compartidas

Los usuarios pueden compartir fotos con su Glassware con un leyenda que ingresa con voz. El flujo de usuarios general es el siguiente:

  1. El usuario presiona un elemento del cronograma que contiene una foto y selecciona Compartir. elemento del menú y selecciona tu contacto.
  2. El usuario vuelve a presionar en un período corto para agregar una leyenda a la foto.
  3. El usuario dice una leyenda.
  4. El elemento de la línea de tiempo se comparte con tu Glassware, tal como se describió anteriormente en Cómo funcionan. Además, el La propiedad text del elemento de cronograma es se establece con la transcripción de la leyenda del usuario.