אנשי קשר

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

כיצד מילות מפתח שליליות עובדות

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

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

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

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

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

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

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

יצירת איש קשר

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

כל אנשי הקשר חייבים לציין 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
}

הרשמה לקבלת התראות שיתוף

ה-שיקוף API מאפשר להירשם לקבלת התראות שנשלחות כשהמשתמש מבצע פעולות ספציפיות לגבי ציר הזמן, או כשמיקום המשתמש מתעדכן. כשאתם נרשמים להתראה, אתם מספקים כתובת URL לקריאה חוזרת (callback) שמעבדת את ההתראה.

התראה מ-שיקוף 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 אם לא אירעה שגיאה. אם השירות שלכם מגיב עם קוד שגיאה, יכול להיות ש-שיקוף API ינסה לשלוח שוב את ההודעה לשירות.

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

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

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

לדוגמה, משתמש יכול לספר לנו על יום ההולדת הקרוב של צ'יפוטה עם הביטוי: "Ok Glass... פרסם עדכון ב... זרם חתולים... יום ההולדת של צ'יפוטל מתקיים מחר!"

כדי להשתמש בפקודות קוליות:

  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 של הפריט בציר הזמן מוגדר לכתוביות המתורגמות של המשתמש.