Contacts

Les contacts permettent à votre Glassware de recevoir des éléments de la timeline qu'elle n'a pas créés. Les utilisateurs doivent partager explicitement un élément de la timeline 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, le partage des fiches de la timeline suit ce flux général :

  1. Créez un contact et définissez les types MIME qu'il accepte.
  2. Insérez le contact dans la timeline de l'utilisateur.
  3. L'utilisateur reçoit un élément de la timeline comportant un élément de menu Partager. La Glassware doit autoriser explicitement les utilisateurs à partager leurs éléments avec cet élément de menu.
  4. L'utilisateur appuie sur l'élément de la timeline, sélectionne l'élément de menu Partager, puis votre contact.
  5. L'API Mirror crée une copie de la fiche de la timeline partagée, donne accès à la copie à votre contact et insère la copie dans la timeline de l'utilisateur. Votre Glassware ne peut pas accéder à l'élément de la timeline d'origine.
  6. Si vous êtes abonné aux notifications de partage, vous recevez une charge utile contenant les informations d'identification de la fiche de la timeline. Vous pouvez ensuite récupérer l'élément de la timeline avec Timeline.get.
  7. Vous modifiez la fiche de la timeline partagée et mettez à jour la fiche de la timeline existante avec Timeline.update.

Quand les utiliser

Par défaut, la Glassware ne peut pas accéder aux éléments de la timeline qu'elle n'a pas créés. Les contacts permettent donc le partage de données entre Glassware avec le consentement utilisateur.

Votre Glassware peut utiliser les contacts de deux manières principales :

  • Autoriser les utilisateurs à partager vos éléments de la timeline avec d'autres contacts : ajoutez l' SHAREélément de menu intégré à une fiche de la timeline. Lorsque les utilisateurs appuient sur l'élément de menu "Partager", Glass affiche une liste des contacts possibles avec lesquels partager.

  • Autoriser les utilisateurs à partager des éléments de la timeline avec votre Glassware : créez un contact qui représente votre Glassware. Lorsque les utilisateurs souhaitent partager une fiche de la timeline, votre contact apparaît comme une option. Vous pouvez également déclarer une liste de types MIME acceptables afin que votre contact n'apparaisse que pour les fiches qui vous intéressent. Pour être averti lorsque les utilisateurs partagent une fiche de la timeline avec votre contact, vous pouvez vous abonner aux notifications de la timeline.

Créer un contact

Pour autoriser les utilisateurs à partager des éléments de la timeline avec votre Glassware, insérez un contact en envoyant une représentation JSON d'un contact au point de terminaison REST d'insertion.

Tous les contacts doivent spécifier un id, qui identifie le contact auprès de la Glassware recevant les notifications. Vous devez également spécifier un displayName et au moins un imageUrls, que Glass utilise pour afficher les informations de contact à 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 la timeline ou lorsque sa position 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 l'ID de l'élément de la timeline partagé, que vous pouvez utiliser avec Timeline.get pour obtenir l'élément de la timeline. L'exemple suivant montre un élément de la timeline typique avec une pièce jointe photo :

{
  "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 avec un code d'erreur, l'API Mirror peut essayer de renvoyer la notification à votre service.

Recevoir une transcription vocale

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

  • "Prends note"
  • "Publie une mise à jour"

Par exemple, un utilisateur peut nous parler de l'anniversaire à venir de Chipotle avec la phrase : "Ok Glass... publie une mise à jour sur... Cat Stream... L'anniversaire de Chipotle est demain !"

Pour utiliser les commandes vocales :

  1. Spécifiez la acceptCommands propriété avec le typeapproprié :

    {
      ...
    
      "displayName": "Cat Stream",
      "id": "CAT_STREAM",
      "acceptCommands": [
        {"type": "POST_AN_UPDATE"}
      ]
    }
    
  2. Abonnez-vous aux notifications de la timeline pour être averti qu'une transcription vocale est disponible. Votre Glassware reçoit une notification lorsque cela se produit :

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

    {
      "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 indiquant le displayName de chaque contact. Les utilisateurs peuvent ensuite prononcer le contact de leur choix. Si le contact's displayName contient des caractères imprononç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 ajoutant une légende qu'ils saisissent à l'aide de la voix. Le flux utilisateur général est le suivant :

  1. L'utilisateur appuie sur un élément de la timeline contenant une photo, sélectionne l'élément de menu Partager, puis votre contact.
  2. L'utilisateur appuie à nouveau dans un court délai pour ajouter une légende à la photo.
  3. L'utilisateur prononce une légende.
  4. L'élément de la timeline est partagé avec votre Glassware comme décrit précédemment dans Fonctionnement. De plus, la propriété text de l'élément de la timeline est définie avec la légende transcrite de l'utilisateur.