コンタクト

連絡先を使用すると、Glassware は作成していないタイムライン アイテムを受信できます。ユーザーは、カードの [共有] メニュー項目をタップして、タイムライン アイテムを連絡先と明示的に共有する必要があります。

仕組み

共有連絡先を作成すると、共有タイムライン カードは次の一般的なフローに従います。

  1. 連絡先を作成し、連絡先がサポートする MIME タイプを定義します。
  2. 連絡先をユーザーのタイムラインに挿入します。
  3. ユーザーには、[共有] メニュー項目を含むタイムライン アイテムが表示されます。Glassware では、ユーザーがこのメニュー項目を使用してアイテムを共有することを明示的に許可する必要があります。
  4. ユーザーがタイムライン アイテムをタップし、[共有] メニュー項目を選択して、あなたの連絡先を選択します。
  5. Mirror API は、共有タイムライン カードのコピーを作成し、そのコピーへのアクセス権を連絡先に付与して、ユーザーのタイムラインにコピーを挿入します。Glassware は元のタイムライン アイテムにアクセスできません。
  6. 共有通知を購読している場合、タイムライン カードの識別情報を含むペイロードが届きます。これで、Timeline.get を使用してタイムライン アイテムを取得できます。
  7. 共有タイムライン カードを変更し、Timeline.update を使用して既存のタイムライン カードを更新します。

アフィリエイト住所表示オプションの目的

デフォルトでは、Glassware は自身が作成していないタイムライン アイテムにアクセスできません。そのため、連絡先を使用すると、ユーザーの同意を得て Glassware 間でデータを共有できます。

Glassware で連絡先を使用する方法は主に 2 つあります。

  • ユーザーがタイムライン アイテムを他の連絡先と共有できるようにする: タイムライン カードにSHARE 組み込みメニュー アイテムを追加します。ユーザーが共有メニュー項目をタップすると、Glass に共有可能な連絡先のリストが表示されます。

  • ユーザーがタイムライン アイテムを Glassware と共有できるようにする: Glassware を表す連絡先を作成します。ユーザーがタイムライン カードを共有しようとすると、連絡先がオプションとして表示されます。また、許容される MIME タイプのリストを宣言して、関心のあるカードにのみ連絡先を表示することもできます。ユーザーがタイムライン カードを連絡先と共有したときに通知を受け取るには、タイムライン通知を登録します。

連絡先の作成

ユーザーがタイムライン アイテムを Glassware と共有できるようにするには、挿入 REST エンドポイント連絡先の JSON 表現を POST して連絡先を挿入します。

すべての連絡先で id を指定する必要があります。これは、通知を受信する Glassware に連絡先を識別するものです。また、Glass がユーザーに連絡先情報を表示するために使用する displayNameimageUrls を少なくとも 1 つ指定する必要があります。

未加工の HTTP

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
}

共有通知への登録

Mirror API を使用すると、ユーザーが Timeline Item で特定のアクションを実行したときや、ユーザーの位置情報が更新されたときに送信される通知を登録できます。通知を登録するときに、通知を処理するコールバック URL を指定します。

Mirror API からの通知は、JSON リクエスト本文を含む POST リクエストとして、登録されたエンドポイントに送信されます。

未加工の HTTP

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

itemId 属性は、共有タイムライン アイテムの ID です。Timeline.get で使用して、タイムライン アイテムを取得できます。次の例は、写真の添付ファイルを含む一般的なタイムライン アイテムを示しています。

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

エラーが発生しなかった場合、サービスは API に 200 OK HTTP ステータス コードで応答する必要があります。サービスがエラーコードで応答した場合、Mirror API は通知をサービスに再送信しようとする可能性があります。

音声文字変換の受信

ユーザーは、メインの音声メニューから、文字起こしされた音声を連絡先と共有できます。現在、連絡先が使用できる音声コマンドは 2 つあります。

  • 「メモして」
  • 「更新を投稿する」

たとえば、ユーザーは「OK Glass... アップデートを投稿して...Cat Stream... 明日は Chipotle の誕生日です。」

音声コマンドを使用するには:

  1. 適切な type を使用して acceptCommands プロパティを指定します。

    {
      ...
    
      "displayName": "Cat Stream",
      "id": "CAT_STREAM",
      "acceptCommands": [
        {"type": "POST_AN_UPDATE"}
      ]
    }
    
  2. タイムラインの通知を登録すると、文字起こしされた音声が利用可能になったときに通知が届きます。このイベントが発生すると、Glassware に通知が届きます。

    {
      "collection": "timeline",
      "operation": "UPDATE",
      "userToken": "<USER_TOKEN>",
      "verifyToken": "<VERIFY_TOKEN>",
      "itemId": "<ITEM_ID>",
      "userActions": [
        {"type": "LAUNCH"}
      ]
    }
    
  3. itemId を使用してタイムライン アイテムを取得します。

    {
      "id": "<ITEM_ID>",
      "text": "Chipotle's birthday is tomorrow",
      "recipients": [
        {"id": "CAT_STREAM"}
      ]
    }
    
  4. 複数の Glassware が同じ音声コマンドで連絡先を登録した場合、Glass には各連絡先の displayName を示す第 2 レベルのメニューが表示されます。ユーザーは選択した連絡先を話すことができます。連絡先の displayName に発音できない文字が含まれている場合や、発音どおりでない場合は、speakableName プロパティを使用して、共有連絡先の想定される発音を宣言します。

共有した写真のキャプション

ユーザーは、音声入力でキャプションを入力して、Glassware と写真を共有できます。一般的なユーザーフローは次のとおりです。

  1. ユーザーが写真を含むタイムライン アイテムをタップし、[共有] メニュー アイテムを選択して、あなたの連絡先を選択します。
  2. ユーザーが短時間内にもう一度タップすると、写真にキャプションが追加されます。
  3. ユーザーが字幕を話します。
  4. タイムライン アイテムは、仕組みで説明したように、Glassware と共有されます。また、タイムライン アイテムの text プロパティには、ユーザーの文字起こしされたキャプションが設定されます。