Kontakte

Kontakte ermöglichen es Ihrer Glassware, Zeitachsenelemente zu empfangen, die nicht von ihr erstellt wurden. Nutzer müssen explizit ein Zeitachsenelement für Ihren Kontakt freigeben, indem sie auf den Menüpunkt Teilen der Karte tippen.

Funktionsweise

Nachdem Sie einen Kontakt für die Freigabe erstellt haben, werden Zeitachsenkarten folgendermaßen geteilt:

  1. Erstellen Sie einen Kontakt und definieren Sie die MIME-Typen, die Ihr Kontakt unterstützt.
  2. Fügen Sie den Kontakt in die Zeitachse des Nutzers ein.
  3. Der Nutzer erhält eine Zeitachse mit dem Menüpunkt Teilen. Glassware muss Nutzern ausdrücklich erlauben, ihre Elemente mit diesem Menüpunkt freizugeben.
  4. Der Nutzer tippt auf die Zeitachse, wählt den Menüpunkt Teilen und dann Ihren Kontakt aus.
  5. Die Mirror API erstellt eine Kopie der freigegebenen Zeitachsenkarte, gewährt Ihrem Kontakt Zugriff darauf und fügt die Kopie in die Zeitachse des Nutzers ein. Ihre Glassware kann nicht auf das ursprüngliche Zeitachsenelement zugreifen.
  6. Wenn Sie Benachrichtigungen geteilt haben, erhalten Sie eine Nutzlast mit den personenidentifizierbaren Informationen der Zeitachse. Anschließend können Sie das Zeitachsenelement mit Timeline.get abrufen.
  7. Sie ändern die geteilte Zeitachse und aktualisieren die vorhandene Zeitachse mit Timeline.update.

Verwendung

Standardmäßig kann Glassware nicht auf Zeitachsenelemente zugreifen, die nicht von ihnen erstellt wurden. Daher erlauben die Kontakte die Weitergabe von Glassware-Daten mit Nutzereinwilligung.

Es gibt zwei Möglichkeiten, wie Ihre Glassware Kontakte verwenden kann:

  • Nutzern erlauben, Zeitachsenelemente mit anderen Kontakten zu teilen: Fügen Sie einer Zeitachse den integrierten Menüpunkt SHARE hinzu. Wenn Nutzer auf den Menüpunkt zum Teilen tippen, wird in Glass eine Liste möglicher Kontakte angezeigt, mit denen sie etwas teilen können.

  • Nutzern erlauben, Zeitachsenelemente für Glassware freizugeben: Erstellen Sie einen Kontakt, der Ihre Glassware repräsentiert. Wenn Nutzende eine Zeitachse teilen möchten, wird Ihr Kontakt als Option angezeigt. Sie können auch eine Liste zulässiger MIME-Typen angeben, damit Ihr Kontakt nur für Karten angezeigt wird, an denen Sie interessiert sind. Wenn Sie benachrichtigt werden möchten, wenn Nutzer eine Zeitachse mit Ihrem Kontakt teilen, können Sie Zeitachsenbenachrichtigungen abonnieren.

Kontakt erstellen

Damit Nutzer Zeitachsenelemente für Ihre Glassware freigeben können, fügen Sie einen Kontakt ein, indem Sie eine JSON-Darstellung eines Kontakts an den REST-Endpunkt einfügen POSTEN.

Alle Kontakte müssen einen id angeben, der den Kontakt für die Glassware identifiziert, die die Benachrichtigungen erhält. Sie müssen außerdem eine displayName und mindestens eine imageUrls angeben, die Glass verwendet, um dem Nutzer die Kontaktdaten anzuzeigen.

HTTP-Rohdaten

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
}

Freigabebenachrichtigungen abonnieren

Mit der Mirror API können Sie Benachrichtigungen abonnieren, die gesendet werden, wenn der Nutzer bestimmte Aktionen für ein Zeitachsenelement ausführt oder der Nutzerstandort aktualisiert wurde. Wenn Sie eine Benachrichtigung abonnieren, geben Sie eine Callback-URL an, die die Benachrichtigung verarbeitet.

Eine Benachrichtigung von der Mirror API wird als POST-Anfrage mit dem Text der JSON-Anfrage an den abonnierten Endpunkt gesendet.

HTTP-Rohdaten

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

Das Attribut itemId ist der ID des freigegebenen Zeitachsenelements, das Sie mit Timeline.get verwenden können, um das Zeitachsenelement abzurufen. Das folgende Beispiel zeigt ein typisches Zeitachsenelement mit einem Fotoanhang:

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

Wenn kein Fehler aufgetreten ist, muss Ihr Dienst mit dem HTTP-Statuscode 200 OK an die API antworten. Wenn der Dienst einen Fehlercode zurückgibt, versucht die Mirror API möglicherweise, die Benachrichtigung noch einmal an den Dienst zu senden.

Sprachtranskription wird empfangen

Nutzer können über das Hauptmenü für die Spracheingabe transkribierte Sprache mit Ihrem Kontakt teilen. Derzeit gibt es zwei Sprachbefehle, die Ihr Kontakt verwenden kann:

  • "eine Notiz machen"
  • „poste eine Aktualisierung“

Zum Beispiel kann ein Nutzer Chipotles Geburtstag mit folgendem Satz erwähnen: "Ok Glass... Update posten an... Katzenstream... Morgen hat Chipotle Geburtstag!“

So verwenden Sie Sprachbefehle:

  1. Geben Sie das Attribut acceptCommands mit dem entsprechenden type an:

    {
      ...
    
      "displayName": "Cat Stream",
      "id": "CAT_STREAM",
      "acceptCommands": [
        {"type": "POST_AN_UPDATE"}
      ]
    }
    
  2. Abonnieren Sie Zeitachsenbenachrichtigungen, um informiert zu werden, dass transkribierte Sprache verfügbar ist. In diesem Fall erhält Ihre Glassware eine Benachrichtigung:

    {
      "collection": "timeline",
      "operation": "UPDATE",
      "userToken": "<USER_TOKEN>",
      "verifyToken": "<VERIFY_TOKEN>",
      "itemId": "<ITEM_ID>",
      "userActions": [
        {"type": "LAUNCH"}
      ]
    }
    
  3. Rufen Sie mit itemId das Zeitachsenelement ab:

    {
      "id": "<ITEM_ID>",
      "text": "Chipotle's birthday is tomorrow",
      "recipients": [
        {"id": "CAT_STREAM"}
      ]
    }
    
  4. Wenn mehrere Glassware einen Kontakt mit demselben Sprachbefehl registrieren, wird in Glass ein Menü auf zweiter Ebene mit den displayName jedes Kontakts angezeigt. Nutzende können dann den Kontakt ihrer Wahl sprechen. Wenn der displayName Ihres Kontakts nicht aussprechbare Zeichen enthält oder keine Lautschrift enthält, verwenden Sie die Property speakableName, um die erwartete Aussprache des gemeinsamen Kontakts zu deklarieren.

Bildunterschriften für geteilte Fotos

Nutzer können mit Ihrer Glassware Fotos mit einem Begleitkommentar teilen, den sie per Spracheingabe eingeben. Der allgemeine User Flow sieht so aus:

  1. Der Nutzer tippt auf ein Zeitachsenelement mit einem Foto, wählt den Menüpunkt Teilen und dann Ihren Kontakt aus.
  2. Der Nutzer tippt innerhalb kurzer Zeit noch einmal, um dem Foto eine Bildunterschrift hinzuzufügen.
  3. Der Nutzer spricht eine Bildunterschrift.
  4. Das Zeitachsenelement wird wie unter Funktionsweise beschrieben für Ihre Glassware freigegeben. Außerdem wird das Attribut text der Zeitachse durch den vom Nutzer transkribierten Untertitel festgelegt.