Contatti

I contatti consentono al tuo Glassware di ricevere elementi della sequenza temporale che non ha creato. Gli utenti devono condividere esplicitamente una voce della cronologia con il tuo contatto toccando la voce di menu Condividi di una scheda.

Funzionamento

Una volta creato un contatto per la condivisione, le schede della cronologia vengono condivise seguendo questa procedura generale:

  1. Creare un contatto e definire i tipi MIME supportati.
  2. Inserisci il contatto nella sequenza temporale dell'utente.
  3. L'utente riceve una voce della sequenza temporale con una voce di menu Condividi. Gli elementi in vetro devono consentire esplicitamente agli utenti di condividere i propri elementi con questa voce di menu.
  4. L'utente tocca la voce della sequenza temporale, seleziona la voce di menu Condividi e il contatto.
  5. L'API Mirror crea una copia della scheda della cronologia condivisa, fornisce al tuo contatto l'accesso alla copia e la inserisce nella sequenza temporale dell'utente. Il tuo Glassware non può accedere all'elemento nella sequenza temporale originale.
  6. Se hai acquistato la condivisione di notifiche, riceverai un payload contenente le informazioni identificative della scheda della cronologia. Puoi quindi recuperare l'elemento della sequenza temporale con Timeline.get.
  7. Puoi modificare la scheda della sequenza temporale condivisa e aggiornare la scheda della sequenza temporale esistente con Timeline.update.

Quando utilizzarli

Per impostazione predefinita, Glassware non può accedere agli elementi della sequenza temporale che non ha creato, quindi i contatti consentono a Glassware di condividere i dati di Glassware con il consenso dell'utente.

Esistono due modi principali per utilizzare Glassware con i contatti:

  • Consenti agli utenti di condividere gli elementi della tua cronologia con altri contatti: aggiungi la voce del menu integrata SHARE a una scheda della sequenza temporale. Quando gli utenti toccano una voce di menu Condividi, Glass mostra un elenco di possibili contatti con cui condividere.

  • Consenti agli utenti di condividere elementi della sequenza temporale con il tuo Glassware: crea un contatto che rappresenti il tuo Glassware. Se gli utenti vogliono condividere una scheda della cronologia, viene visualizzata l'opzione di contatto. Puoi anche dichiarare un elenco di tipi MIME accettabili in modo che il tuo contatto venga visualizzato solo per le schede che ti interessano. Per ricevere una notifica quando gli utenti condividono una scheda della cronologia con il tuo contatto, puoi iscriverti alle notifiche della cronologia.

Creazione di un contatto

Per consentire agli utenti di condividere elementi della sequenza temporale con il tuo Glassware, inserisci un contatto pubblicando una rappresentazione JSON di un contatto nell'endpoint REST.

Tutti i contatti devono specificare un id, che identifica il contatto con il Glassware in modo che riceva le notifiche. Devi anche specificare displayName e almeno un imageUrls, che Glass utilizza per mostrare i dati di contatto all'utente.

HTTP non elaborato

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
}

Iscrizione alla condivisione delle notifiche

L'API Mirror consente di iscriversi alle notifiche inviate quando l'utente intraprende azioni specifiche su un elemento della sequenza temporale o quando la posizione dell'utente è stata aggiornata. Quando ti iscrivi a una notifica, devi fornire un URL di callback che elabora la notifica.

Una notifica dall'API Mirror viene inviata come richiesta POST all'endpoint sottoscritto contenente un corpo della richiesta JSON.

HTTP non elaborato

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

L'attributo itemId è il ID dell'elemento della sequenza temporale condiviso, che puoi utilizzare con Timeline.get per ottenere l'elemento della sequenza temporale. L'esempio che segue mostra una tipica sequenza temporale con una foto allegata:

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

Il servizio deve rispondere all'API con un codice di stato HTTP 200 OK se non si è verificato alcun errore. Se il servizio risponde con un codice di errore, l'API Mirror potrebbe provare a inviare nuovamente la notifica.

Ricezione della trascrizione del parlato in corso...

Gli utenti possono condividere la trascrizione del parlato con il tuo contatto tramite il menu vocale principale. Attualmente il tuo contatto può utilizzare due comandi vocali:

  • "crea una nota"
  • "posta un aggiornamento"

Ad esempio, un utente può dirci il prossimo compleanno di Chipotle con la frase: "Ok Glass... pubblica un aggiornamento per... Stream di gatti... Il compleanno di Chipotle è domani!"

Per utilizzare i comandi vocali:

  1. Specifica la proprietà acceptCommands con l'elemento type appropriato:

    {
      ...
    
      "displayName": "Cat Stream",
      "id": "CAT_STREAM",
      "acceptCommands": [
        {"type": "POST_AN_UPDATE"}
      ]
    }
    
  2. Iscriviti alle notifiche relative alla cronologia per ricevere una notifica quando è disponibile la trascrizione del parlato. Il tuo Glassware riceve una notifica quando si verifica questa situazione:

    {
      "collection": "timeline",
      "operation": "UPDATE",
      "userToken": "<USER_TOKEN>",
      "verifyToken": "<VERIFY_TOKEN>",
      "itemId": "<ITEM_ID>",
      "userActions": [
        {"type": "LAUNCH"}
      ]
    }
    
  3. Usa itemId per recuperare l'elemento della sequenza temporale:

    {
      "id": "<ITEM_ID>",
      "text": "Chipotle's birthday is tomorrow",
      "recipients": [
        {"id": "CAT_STREAM"}
      ]
    }
    
  4. Se più strumenti Glassware registrano un contatto con lo stesso comando vocale, Glass mostra un menu di secondo livello che mostra l'icona displayName di ogni contatto. Gli utenti possono quindi comunicare il contatto scelto. Se l'elemento displayName del tuo contatto contiene caratteri non pronunciabili o non è fonetico, utilizza la proprietà speakableName per dichiarare la pronuncia prevista del tuo contatto di condivisione.

Sottotitoli per le foto condivise

Gli utenti hanno la possibilità di condividere foto con il tuo Glassware con una didascalia che li accompagna Il flusso di utenti generale è:

  1. L'utente tocca una voce della sequenza temporale che contiene una foto, seleziona la voce di menu Condividi e il contatto.
  2. L'utente tocca di nuovo entro un breve periodo di tempo per aggiungere una didascalia alla foto.
  3. L'utente pronuncia una didascalia.
  4. L'elemento della sequenza temporale viene condiviso con Glassware come descritto in precedenza nella sezione Come funzionano. Inoltre, la proprietà text dell'elemento della sequenza temporale è impostata con la didascalia trascritta dell'utente.