אנשי קשר

האפליקציה 'אנשי קשר' מאפשרת ל-Glassware לקבל פריטים בציר הזמן שהיא לא יצרה. המשתמשים צריכים לשתף באופן מפורש פריט בציר הזמן עם איש הקשר שלכם. לשם כך, הם צריכים להקיש על פריט התפריט שיתוף בכרטיס.

איך זה עובד

אחרי שיוצרים איש קשר לשיתוף, כרטיסי ציר הזמן של השיתוף פועלים לפי התהליך הכללי הבא:

  1. יוצרים איש קשר ומגדירים סוגי MIME שאיש הקשר תומך בהם.
  2. מוסיפים את איש הקשר לציר הזמן של המשתמש.
  3. המשתמש מקבל פריט בציר הזמן עם אפשרות שיתוף בתפריט. כדי שמשתמשים יוכלו לשתף את הפריטים שלהם באמצעות פריט התפריט הזה, צריך לאפשר זאת באופן מפורש ב-Glassware.
  4. המשתמש מקיש על הפריט בציר הזמן, בוחר באפשרות שיתוף בתפריט ובוחר את איש הקשר שלכם.
  5. ‫Mirror API יוצר עותק של כרטיס ציר הזמן המשותף, נותן לאיש הקשר גישה לעותק ומכניס את העותק לציר הזמן של המשתמש. ל-Glassware אין גישה לפריט המקורי בציר הזמן.
  6. אם נרשמתם לקבלת התראות על שיתוף, תקבלו מטען ייעודי (payload) שמכיל את פרטי הזיהוי של כרטיס ציר הזמן. אחר כך אפשר לאחזר את הפריט בציר הזמן באמצעות Timeline.get.
  7. משנים את כרטיס ציר הזמן המשותף ומעדכנים את כרטיס ציר הזמן הקיים באמצעות Timeline.update.

מתי כדאי להשתמש בנכסים לחיפוש מפיצים

כברירת מחדל, ל-Glassware אין גישה לפריטים בציר הזמן שהוא לא יצר, ולכן אנשי קשר מאפשרים שיתוף נתונים בין Glassware ל-Glassware בהסכמת המשתמש.

יש שתי דרכים עיקריות שבהן אפליקציות Glassware יכולות להשתמש באנשי קשר:

  • המשתמשים יכולים לשתף את הפריטים בציר הזמן עם אנשי קשר אחרים: מוסיפים את SHARE פריט התפריט המובנה לכרטיס בציר הזמן. כשמשתמשים מקישים על פריט התפריט 'שיתוף', ב-Glass מוצגת רשימה של אנשי קשר שאפשר לשתף איתם.

  • המשתמשים יכולים לשתף פריטים בציר הזמן עם תוכנות Glassware: יוצרים איש קשר שמייצג את תוכנת Glassware. כשמשתמשים רוצים לשתף כרטיס בציר הזמן, איש הקשר שלכם מופיע כאפשרות. אפשר גם להצהיר על רשימה של סוגי MIME קבילים כדי שאנשי הקשר יופיעו רק בכרטיסים שמעניינים אתכם. כדי לקבל התראה כשמשתמשים משתפים כרטיס בציר הזמן עם איש הקשר שלכם, אתם יכולים להירשם לקבלת התראות על ציר הזמן.

יצירת איש קשר

כדי לאפשר למשתמשים לשתף פריטים בציר הזמן עם Glassware, צריך להוסיף איש קשר באמצעות POST של ייצוג JSON של איש קשר אל נקודת הקצה של REST‏ insert.

כל אנשי הקשר צריכים לציין id, שמזהה את איש הקשר ב-Glassware שמקבל את ההתראות. צריך לציין גם displayName ולפחות imageUrls אחד, שמשמשים את 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 עם קוד סטטוס 200 OK של HTTP. אם השירות שלכם מגיב עם קוד שגיאה, יכול להיות ש-Mirror API ינסה לשלוח מחדש את ההתראה לשירות שלכם.

קבלת תמלול של דיבור

המשתמשים יכולים לשתף את התמליל עם איש הקשר דרך תפריט הקולי הראשי. נכון לעכשיו, יש שתי פקודות קוליות שהאיש שאתם מדברים איתו יכול להשתמש בהן:

  • "רשום הערה"
  • "לפרסם עדכון"

לדוגמה, משתמש יכול להגיד לנו על יום ההולדת הקרוב של Chipotle עם הביטוי: "Ok Glass... post an update to... 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 אחד רושם איש קשר עם אותה פקודה קולית, מוצג ב-Glass תפריט ברמה השנייה עם displayName של כל איש קשר. לאחר מכן, המשתמשים יכולים להגיד את שם איש הקשר שאליו הם רוצים להתקשר. אם השם של איש הקשר שלכם ב-displayName מכיל תווים שלא ניתן לבטא או שהוא לא פונטי, צריך להשתמש במאפיין speakableName כדי להצהיר על ההגייה הצפויה של איש הקשר שאיתו אתם משתפים.

כתוביות לתמונות משותפות

המשתמשים יכולים לשתף תמונות עם תוכנות Glassware עם כיתוב נלווה שהם מקלידים באמצעות דיבור. מסלול המשתמש הכללי הוא:

  1. המשתמש מקיש על פריט בציר הזמן שמכיל תמונה, בוחר באפשרות שיתוף בתפריט ובוחר את איש הקשר שלכם.
  2. המשתמש מקיש שוב תוך פרק זמן קצר כדי להוסיף כיתוב לתמונה.
  3. המשתמש אומר כיתוב.
  4. הפריט בציר הזמן משותף עם תוכנת Glassware כמו שמתואר בקטע איך זה עובד. בנוסף, המאפיין text של פריט בציר הזמן מוגדר עם הכיתוב המתומלל של המשתמש.