Danh bạ

Danh bạ cho phép Glassware nhận các mục trong dòng thời gian mà Glassware không tạo ra. Người dùng phải chia sẻ một mục trên dòng thời gian với người liên hệ của bạn một cách rõ ràng bằng cách nhấn vào mục Chia sẻ trong trình đơn của thẻ.

Cách hoạt động

Sau khi bạn tạo một người liên hệ được chia sẻ, các thẻ trên dòng thời gian được chia sẻ sẽ tuân theo quy trình chung sau:

  1. Tạo một số liên hệ và xác định các loại MIME mà số liên hệ đó hỗ trợ.
  2. Chèn người liên hệ vào dòng thời gian của người dùng.
  3. Người dùng nhận được một mục trên dòng thời gian có mục trình đơn Chia sẻ. Glassware phải cho phép người dùng chia sẻ các mục của họ một cách rõ ràng bằng mục này trong trình đơn.
  4. Người dùng nhấn vào mục trên dòng thời gian, chọn mục Chia sẻ trong trình đơn rồi chọn người liên hệ của bạn.
  5. Mirror API tạo một bản sao của thẻ dòng thời gian được chia sẻ, cấp cho người liên hệ của bạn quyền truy cập vào bản sao đó và chèn bản sao vào dòng thời gian của người dùng. Glassware của bạn không thể truy cập vào mục ban đầu trên dòng thời gian.
  6. Nếu đăng ký nhận thông báo chia sẻ, bạn sẽ nhận được một tải trọng chứa thông tin nhận dạng của thẻ trên dòng thời gian. Sau đó, bạn có thể truy xuất mục trên dòng thời gian bằng Timeline.get.
  7. Bạn sửa đổi thẻ dòng thời gian được chia sẻ và cập nhật thẻ dòng thời gian hiện có bằng Timeline.update.

Khi nào nên sử dụng tiện ích vị trí đơn vị liên kết

Theo mặc định, Glassware không thể truy cập vào các mục trên dòng thời gian mà nó không tạo. Do đó, danh bạ cho phép Glassware chia sẻ dữ liệu với Glassware khi có sự đồng ý của người dùng.

Có 2 cách chính để Glassware có thể sử dụng danh bạ:

  • Cho phép người dùng chia sẻ các mục trên dòng thời gian với người liên hệ khác: Thêm mục trình đơn tích hợp SHARE vào thẻ trên dòng thời gian. Khi người dùng nhấn vào mục trình đơn chia sẻ, Glass sẽ hiển thị danh sách các số liên hệ có thể chia sẻ.

  • Cho phép người dùng chia sẻ các mục trên dòng thời gian với Glassware của bạn: Tạo một người liên hệ đại diện cho Glassware của bạn. Khi người dùng muốn chia sẻ thẻ trên dòng thời gian, người liên hệ của bạn sẽ xuất hiện dưới dạng một lựa chọn. Bạn cũng có thể khai báo danh sách các loại MIME chấp nhận được để chỉ những thẻ mà bạn quan tâm mới xuất hiện thông tin liên hệ của bạn. Để nhận thông báo khi người dùng chia sẻ thẻ trên dòng thời gian với người liên hệ của bạn, bạn có thể đăng ký nhận thông báo về dòng thời gian.

Tạo một người liên hệ

Để cho phép người dùng chia sẻ các mục trên dòng thời gian với Glassware của bạn, hãy chèn một người liên hệ bằng cách đăng một biểu thị JSON của một người liên hệ vào điểm cuối REST chèn.

Tất cả thông tin liên hệ phải chỉ định một id. Thông tin này xác định người liên hệ với Glassware nhận thông báo. Bạn cũng phải chỉ định một displayName và ít nhất một imageUrls mà Glass dùng để hiển thị thông tin liên hệ cho người dùng.

HTTP thô

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
}

Đăng ký nhận thông báo về việc chia sẻ

Mirror API cho phép bạn đăng ký nhận thông báo được gửi khi người dùng thực hiện các hành động cụ thể trên một Mục trên dòng thời gian hoặc khi vị trí của người dùng được cập nhật. Khi đăng ký nhận thông báo, bạn sẽ cung cấp một URL gọi lại để xử lý thông báo.

Thông báo từ Mirror API được gửi dưới dạng yêu cầu POST đến điểm cuối đã đăng ký chứa nội dung yêu cầu JSON.

HTTP thô

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

Thuộc tính itemIdID của mục được chia sẻ trên dòng thời gian mà bạn có thể dùng với Timeline.get để lấy mục trên dòng thời gian. Ví dụ sau đây cho thấy một mục trên dòng thời gian thông thường có tệp đính kèm là ảnh:

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

Dịch vụ của bạn phải phản hồi API bằng mã trạng thái HTTP 200 OK nếu không xảy ra lỗi. Nếu dịch vụ của bạn phản hồi bằng mã lỗi, Mirror API có thể cố gắng gửi lại thông báo đến dịch vụ của bạn.

Đang nhận bản chép lời

Người dùng có thể chia sẻ lời nói được chép lời với người liên hệ của bạn thông qua trình đơn thoại chính. Hiện tại, người liên hệ của bạn có thể dùng 2 lệnh thoại:

  • "ghi chú"
  • "đăng nội dung cập nhật"

Ví dụ: người dùng có thể cho chúng tôi biết về ngày sinh nhật sắp tới của Chipotle bằng cụm từ: "Ok Glass... post an update to... Cat Stream... Ngày mai là sinh nhật của Chipotle!"

Cách dùng lệnh thoại:

  1. Chỉ định thuộc tính acceptCommands bằng type thích hợp:

    {
      ...
    
      "displayName": "Cat Stream",
      "id": "CAT_STREAM",
      "acceptCommands": [
        {"type": "POST_AN_UPDATE"}
      ]
    }
    
  2. Đăng ký nhận thông báo trên dòng thời gian để được thông báo khi có bản chép lời. Glassware của bạn sẽ nhận được thông báo khi điều này xảy ra:

    {
      "collection": "timeline",
      "operation": "UPDATE",
      "userToken": "<USER_TOKEN>",
      "verifyToken": "<VERIFY_TOKEN>",
      "itemId": "<ITEM_ID>",
      "userActions": [
        {"type": "LAUNCH"}
      ]
    }
    
  3. Sử dụng itemId để tìm nạp mục trên dòng thời gian:

    {
      "id": "<ITEM_ID>",
      "text": "Chipotle's birthday is tomorrow",
      "recipients": [
        {"id": "CAT_STREAM"}
      ]
    }
    
  4. Nếu có nhiều Glassware đăng ký một người liên hệ bằng cùng một lệnh thoại, Glass sẽ hiển thị một trình đơn cấp hai cho thấy displayName của từng người liên hệ. Sau đó, người dùng có thể nói tên người liên hệ mà họ muốn. Nếu displayName của người liên hệ chứa các ký tự không phát âm được hoặc không theo phiên âm, hãy dùng thuộc tính speakableName để khai báo cách phát âm dự kiến của người liên hệ mà bạn chia sẻ.

Phụ đề cho ảnh được chia sẻ

Người dùng có thể chia sẻ ảnh với Glassware của bạn kèm theo chú thích mà họ nhập bằng giọng nói. Luồng người dùng chung là:

  1. Người dùng nhấn vào một mục trên dòng thời gian có chứa ảnh, chọn mục Chia sẻ trong trình đơn rồi chọn người liên hệ của bạn.
  2. Người dùng nhấn lại trong một khoảng thời gian ngắn để thêm chú thích vào ảnh.
  3. Người dùng nói một phụ đề.
  4. Mục trên dòng thời gian được chia sẻ với Glassware của bạn như mô tả trước đó trong phần Cách hoạt động. Ngoài ra, thuộc tính text của mục trên dòng thời gian được đặt bằng chú thích đã chép lời của người dùng.