Contacts

Les contacts permettent à votre Glassware de recevoir des éléments chronologiques qu'il n'a pas créés. Les utilisateurs doivent partager explicitement un élément de la chronologie avec votre contact en appuyant sur l'élément de menu Partager d'une fiche.

Fonctionnement

Une fois que vous avez créé un contact de partage, les fiches de la chronologie de partage suivent cette procédure générale:

  1. Créez un contact et définissez les types MIME pris en charge par votre contact.
  2. Insérez le contact dans la chronologie de l'utilisateur.
  3. L'utilisateur reçoit un élément de chronologie comportant un élément de menu Share (Partager). Glassware doit explicitement autoriser les utilisateurs à partager leurs plats avec cet élément de menu.
  4. L'utilisateur appuie sur l'élément de la chronologie, sélectionne l'élément de menu Partager, puis sélectionne votre contact.
  5. L'API Mirror crée une copie de la fiche de la chronologie partagée, autorise votre contact à accéder à la copie et l'insère dans la chronologie de l'utilisateur. Votre Glassware ne peut pas accéder à l'élément de la chronologie d'origine.
  6. Si vous vous êtes abonné aux notifications de partage, vous recevez une charge utile contenant les informations d'identification de la fiche chronologique. Vous pouvez ensuite récupérer l'élément de la chronologie à l'aide de la méthode Timeline.get.
  7. Vous allez modifier la fiche de la chronologie partagée et mettre à jour la fiche existante avec Timeline.update.

Quand les utiliser

Par défaut, Glassware ne peut pas accéder aux éléments de chronologie qu'il n'a pas créés. Les contacts autorisent donc Glassware à partager des données Glassware avec le consentement de l'utilisateur.

Votre Glassware peut utiliser des contacts de deux manières:

  • Autoriser les utilisateurs à partager des éléments de votre chronologie avec d'autres contacts: ajoutez l'élément de menu intégré SHARE à une fiche chronologique. Lorsque les utilisateurs appuient sur l'élément du menu de partage, Glass affiche une liste de contacts possibles avec lesquels le partage.

  • Autoriser les utilisateurs à partager des éléments de chronologie avec Glassware: créez un contact qui représente votre Glassware. Lorsque les utilisateurs souhaitent partager une fiche de chronologie, votre contact apparaît en tant qu'option. Vous pouvez également déclarer une liste de types MIME autorisés afin que votre contact n'apparaisse que pour les fiches qui vous intéressent. Pour recevoir une notification lorsque les utilisateurs partagent une fiche de chronologie avec votre contact, vous pouvez vous abonner aux notifications de chronologie.

Création d'un contact

Pour permettre aux utilisateurs de partager des éléments de chronologie avec votre Glassware, insérez un contact en envoyant une représentation JSON d'un contact au point de terminaison REST.

Tous les contacts doivent spécifier un id, qui identifie le contact auprès du Glassware recevant les notifications. Vous devez également spécifier un displayName et au moins un imageUrls, que Glass utilise pour afficher les coordonnées à l'utilisateur.

HTTP brut

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
}

S'abonner aux notifications de partage

L'API Mirror vous permet de vous abonner aux notifications envoyées lorsque l'utilisateur effectue des actions spécifiques sur un élément de chronologie ou lorsque la position de l'utilisateur a été mise à jour. Lorsque vous vous abonnez à une notification, vous fournissez une URL de rappel qui traite la notification.

Une notification de l'API Mirror est envoyée sous forme de requête POST au point de terminaison abonné contenant un corps de requête JSON.

HTTP brut

{
  "collection": "timeline",
  "itemId": "3hidvm0xez6r8_dacdb3103b8b604_h8rpllg",
  "operation": "INSERT",
  "userToken": "harold_penguin",
  "verifyToken": "random_hash_to_verify_referer",
  "userActions": [
    {
      "type": "SHARE"
    }
  ]
}

L'attribut itemId est le ID de l'élément de chronologie partagé, que vous pouvez utiliser avec Timeline.get pour obtenir l'élément de chronologie. L'exemple suivant montre un élément de timeline classique avec une photo en pièce jointe:

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

Votre service doit répondre à l'API avec un code d'état HTTP 200 OK si aucune erreur ne s'est produite. Si votre service répond par un code d'erreur, l'API Mirror peut tenter de lui renvoyer la notification.

Réception de la transcription vocale...

Les utilisateurs peuvent partager une transcription de voix avec votre contact via le menu vocal principal. Votre contact peut actuellement utiliser deux commandes vocales:

  • "créer une note"
  • "publier une mise à jour"

Par exemple, un utilisateur peut nous informer du prochain anniversaire de Chipotle avec la phrase: "Ok Glass, publie une mise à jour sur... Flux pour chat... Demain, c'est l'anniversaire de Chipotle !"

Pour utiliser les commandes vocales:

  1. Spécifiez la propriété acceptCommands avec la propriété type appropriée:

    {
      ...
    
      "displayName": "Cat Stream",
      "id": "CAT_STREAM",
      "acceptCommands": [
        {"type": "POST_AN_UPDATE"}
      ]
    }
    
  2. Abonnez-vous aux notifications chronologiques pour être averti que la transcription de discours est disponible. Votre Glassware reçoit une notification dans les cas suivants:

    {
      "collection": "timeline",
      "operation": "UPDATE",
      "userToken": "<USER_TOKEN>",
      "verifyToken": "<VERIFY_TOKEN>",
      "itemId": "<ITEM_ID>",
      "userActions": [
        {"type": "LAUNCH"}
      ]
    }
    
  3. Utilisez itemId pour récupérer l'élément de chronologie:

    {
      "id": "<ITEM_ID>",
      "text": "Chipotle's birthday is tomorrow",
      "recipients": [
        {"id": "CAT_STREAM"}
      ]
    }
    
  4. Si plusieurs Glassware enregistrent un contact avec la même commande vocale, Glass affiche un menu de deuxième niveau affichant le displayName de chaque contact. Les utilisateurs peuvent alors énoncer le contact de leur choix. Si le displayName de votre contact contient des caractères non prononçables ou n'est pas phonétique, utilisez la propriété speakableName pour déclarer la prononciation attendue de votre contact de partage.

Légendes pour les photos partagées

Les utilisateurs peuvent partager des photos avec votre Glassware en les accompagnant d'une légende qu'ils saisissent par commande vocale. Le flux utilisateur général est le suivant:

  1. L'utilisateur appuie sur un élément de la chronologie contenant une photo, sélectionne l'élément de menu Partager, puis sélectionne votre contact.
  2. L'utilisateur appuie à nouveau peu de temps pour ajouter une légende à la photo.
  3. L'utilisateur prononce un sous-titre.
  4. L'élément de chronologie est partagé avec votre Glassware, comme décrit précédemment dans la section Fonctionnement. De plus, la propriété text de l'élément de chronologie est définie avec les sous-titres transcrits de l'utilisateur.