รายชื่อติดต่อ

รายชื่อติดต่อช่วยให้ Glassware ของคุณรับรายการในไทม์ไลน์ที่ไม่ได้สร้างขึ้นได้ ผู้ใช้ต้องแชร์รายการในไทม์ไลน์กับรายชื่อติดต่ออย่างชัดเจนโดยแตะรายการเมนู แชร์ ของการ์ด

วิธีการทำงาน

เมื่อสร้างรายชื่อติดต่อสำหรับการแชร์แล้ว การแชร์การ์ดในไทม์ไลน์จะเป็นไปตามขั้นตอนทั่วไปดังนี้

  1. สร้างรายชื่อติดต่อและกำหนดประเภท MIME ที่รายชื่อติดต่อนั้นรองรับ
  2. แทรกรายชื่อติดต่อลงในไทม์ไลน์ของผู้ใช้
  3. ผู้ใช้จะได้รับรายการในไทม์ไลน์ที่มีรายการเมนูแชร์ Glassware ต้องอนุญาตให้ผู้ใช้แชร์รายการของตนเองด้วยรายการเมนูนี้อย่างชัดเจน
  4. ผู้ใช้แตะรายการในไทม์ไลน์ เลือกรายการเมนูแชร์ แล้วเลือกรายชื่อติดต่อของคุณ
  5. Mirror API จะสร้างสำเนาของการ์ดในไทม์ไลน์ที่แชร์ ให้สิทธิ์เข้าถึงสำเนาแก่รายชื่อติดต่อของคุณ และแทรกสำเนาลงในไทม์ไลน์ของผู้ใช้ Glassware ของคุณจะเข้าถึงรายการในไทม์ไลน์เดิมไม่ได้
  6. หากคุณ สมัครรับข้อมูลการแจ้งเตือนการแชร์, คุณจะได้รับเพย์โหลดที่มีข้อมูลระบุตัวตนของการ์ดในไทม์ไลน์ จากนั้นคุณจะดึงข้อมูลรายการในไทม์ไลน์ด้วย Timeline.get ได้
  7. คุณแก้ไขการ์ดในไทม์ไลน์ที่แชร์และอัปเดตการ์ดในไทม์ไลน์ที่มีอยู่ ด้วย Timeline.update

ควรใช้ในกรณีใด

โดยค่าเริ่มต้น Glassware จะเข้าถึงรายการในไทม์ไลน์ที่ไม่ได้สร้างขึ้นไม่ได้ ดังนั้นรายชื่อติดต่อจึงช่วยให้ Glassware สามารถแชร์ข้อมูล Glassware กับ Glassware ได้ด้วยความยินยอมของผู้ใช้

Glassware ของคุณใช้รายชื่อติดต่อได้ 2 วิธีหลักๆ ดังนี้

การสร้างรายชื่อติดต่อ

หากต้องการอนุญาตให้ผู้ใช้แชร์รายการในไทม์ไลน์กับ Glassware ของคุณ ให้แทรก รายชื่อติดต่อโดย POST การแสดง JSON ของรายชื่อติดต่อไปยัง ปลายทาง REST สำหรับการแทรก

รายชื่อติดต่อทั้งหมดต้องระบุ id ซึ่งระบุรายชื่อติดต่อกับ Glassware ที่รับการแจ้งเตือน นอกจากนี้ คุณต้องระบุ displayName และ imageUrls อย่างน้อย 1 รายการ ซึ่ง Glass ใช้เพื่อแสดงข้อมูลรายชื่อติดต่อแก่ผู้ใช้

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 ช่วยให้คุณ สมัครรับข้อมูลการแจ้งเตือน ที่จะส่งเมื่อผู้ใช้ดำเนินการบางอย่างกับ รายการในไทม์ไลน์ หรือเมื่อมีการอัปเดตตำแหน่งของผู้ใช้ เมื่อสมัครรับข้อมูลการแจ้งเตือน คุณจะต้องระบุ URL เรียกกลับที่จะประมวลผลการแจ้งเตือน

ระบบจะส่งการแจ้งเตือนจาก Mirror API เป็นคำขอ POST ไปยังปลายทางที่สมัครรับข้อมูลซึ่งมีเนื้อหาคำขอ JSON

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 ด้วยรหัสสถานะ HTTP 200 OK หากไม่มีข้อผิดพลาดเกิดขึ้น หากบริการของคุณตอบกลับด้วยรหัสข้อผิดพลาด Mirror API อาจพยายามส่งการแจ้งเตือนไปยังบริการของคุณอีกครั้ง

การรับข้อความถอดเสียง

ผู้ใช้สามารถแชร์ข้อความถอดเสียงกับรายชื่อติดต่อของคุณผ่านเมนูเสียงหลัก ปัจจุบันรายชื่อติดต่อของคุณใช้คำสั่งเสียงได้ 2 คำสั่ง ได้แก่

  • "จดโน้ต"
  • "โพสต์การอัปเดต"

ตัวอย่างเช่น ผู้ใช้สามารถบอกเราเกี่ยวกับวันเกิดที่กำลังจะมาถึงของ Chipotle ด้วยวลี "Ok Glass... โพสต์การอัปเดตไปยัง... Cat Stream... วันเกิดของ Chipotle คือพรุ่งนี้!"

วิธีใช้คำสั่งเสียง

  1. ระบุพร็อพเพอร์ตี้ acceptCommands ด้วย typeที่เหมาะสม:

    {
      ...
    
      "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 มากกว่า 1 รายการลงทะเบียนรายชื่อติดต่อด้วยคำสั่งเสียงเดียวกัน Glass จะแสดงเมนูระดับที่ 2 ซึ่งแสดง displayName ของรายชื่อติดต่อแต่ละรายการ จากนั้นผู้ใช้จะพูดชื่อรายชื่อติดต่อที่ต้องการได้ หาก displayName ของรายชื่อติดต่อมี อักขระที่ออกเสียงไม่ได้หรือไม่เป็นไปตามหลักสัทศาสตร์ ให้ใช้พร็อพเพอร์ตี้ speakableName เพื่อประกาศการออกเสียงที่คาดหวังของรายชื่อติดต่อสำหรับการแชร์

คำบรรยายสำหรับรูปภาพที่แชร์

ผู้ใช้สามารถแชร์รูปภาพกับ Glassware ของคุณพร้อมคำบรรยายที่ป้อนด้วยเสียง ขั้นตอนทั่วไปของผู้ใช้มีดังนี้

  1. ผู้ใช้แตะรายการในไทม์ไลน์ที่มีรูปภาพ เลือกรายการเมนูแชร์ แล้วเลือกรายชื่อติดต่อของคุณ
  2. ผู้ใช้แตะอีกครั้งภายในระยะเวลาสั้นๆ เพื่อเพิ่มคำบรรยายลงในรูปภาพ
  3. ผู้ใช้พูดคำบรรยาย
  4. ระบบจะแชร์รายการในไทม์ไลน์กับ Glassware ของคุณตามที่อธิบายไว้ก่อนหน้านี้ใน ส่วนวิธีการทำงาน นอกจากนี้ ระบบจะตั้งค่าพร็อพเพอร์ตี้ text ของรายการในไทม์ไลน์ด้วยคำบรรยายที่ถอดเสียงของผู้ใช้