Contatti

I contatti consentono a 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

Dopo aver creato un contatto per la condivisione, la condivisione delle schede della cronologia segue 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 che ha una voce di menu Condividi. I bicchieri devono consentire esplicitamente agli utenti di condividere i loro elementi con questa voce di menu.
  4. L'utente tocca la voce della sequenza temporale, seleziona la voce di menu Condividi e poi il contatto.
  5. L'API Mirror crea una copia della scheda della sequenza temporale condivisa, concede al contatto l'accesso alla copia e la inserisce nella sequenza temporale dell'utente. I tuoi Glassware non possono accedere all'elemento della sequenza temporale originale.
  6. Se hai iscritto per condividere le notifiche, ricevi 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 cronologia 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, pertanto i contatti consentono a Glassware di condividere i dati con Glassware con il consenso dell'utente.

Esistono due modi principali in cui Glassware può utilizzare i contatti:

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

  • Consenti agli utenti di condividere elementi della sequenza temporale con Glassware: crea un contatto che rappresenti i tuoi Glassware. Quando gli utenti vogliono condividere una scheda della cronologia, il tuo contatto viene visualizzato tra le opzioni. Puoi anche dichiarare un elenco di tipi MIME accettati in modo che il tuo contatto venga visualizzato solo per le schede che ti interessano. Per ricevere notifiche 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 gli elementi della sequenza temporale con Glassware, inserisci un contatto POSTando una rappresentazione JSON di un contatto nell'endpoint REST.

Tutti i contatti devono specificare un id, che identifica il contatto con gli oggetti Glassware che riceve le notifiche. Devi anche specificare un displayName e almeno un imageUrls, che Glass utilizza per mostrare le informazioni 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 alle notifiche di condivisione

L'API Mirror ti consente di abbonarti alle notifiche che vengono inviate quando l'utente esegue azioni specifiche su un elemento della sequenza temporale o quando la posizione dell'utente è stata aggiornata. Quando ti abboni a una notifica, fornisci un URL di callback che la elabora.

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 condivisa, che puoi utilizzare con Timeline.get per ottenere l'elemento della sequenza temporale. L'esempio seguente mostra un tipico elemento della 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 di nuovo la notifica al servizio.

Ricezione di trascrizione vocale in corso...

Gli utenti possono condividere la trascrizione vocale con il tuo contatto tramite il menu vocale principale. Al momento sono disponibili due comandi vocali che il tuo contatto può utilizzare:

  • "prendi nota"
  • "pubblica un aggiornamento"

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

Per utilizzare i comandi vocali:

  1. Specifica la proprietà acceptCommands con il type appropriato:

    {
      ...
    
      "displayName": "Cat Stream",
      "id": "CAT_STREAM",
      "acceptCommands": [
        {"type": "POST_AN_UPDATE"}
      ]
    }
    
  2. Iscriviti alle notifiche della cronologia per ricevere una notifica sulla disponibilità della trascrizione vocale. In questo caso, Glassware riceve una notifica:

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

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

Didascalie per le foto condivise

Gli utenti hanno la possibilità di condividere foto con Glassware con una didascalia di accompagnamento che inseriscono con il parlato. La procedura generale è:

  1. L'utente tocca una voce della sequenza temporale contenente una foto, seleziona la voce di menu Condividi e seleziona 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 in Come funzionano. Inoltre, la proprietà text dell'elemento della sequenza temporale viene impostata con la didascalia trascritta dell'utente.