جهات اتصال Google

تسمح جهات الاتصال لـ Glassware بتلقي عناصر المخطط الزمني التي لم تنشئها. يجب أن يشارك المستخدمون صراحةً عنصر مخطط زمني مع جهة الاتصال الخاصة بك عن طريق النقر على عنصر القائمة مشاركة في البطاقة.

آلية عملها

بعد إنشاء جهة اتصال مشاركة، تتبع بطاقات المخطط الزمني هذا المسار العام:

  1. يمكنك إنشاء جهة اتصال وتحديد أنواع MIME التي تتوافق مع جهة الاتصال.
  2. أدرِج جهة الاتصال في المخطط الزمني للمستخدم.
  3. يتلقّى المستخدم عنصر مخطط زمني يحتوي على عنصر قائمة مشاركة. يجب أن تسمح Glassware للمستخدمين صراحةً بمشاركة عناصرهم مع عنصر القائمة هذا.
  4. ينقر المستخدم على عنصر المخطط الزمني، ويختار عنصر القائمة مشاركة ويختار جهة الاتصال.
  5. تنشئ Mirror API نسخة من بطاقة المخطط الزمني المشتركة، وتتيح لجهة الاتصال الوصول إلى النسخة، ثم تُدرِج النسخة في المخطط الزمني للمستخدم. لا يمكن لـ Glassware الدخول إلى عنصر المخطط الزمني الأصلي.
  6. إذا اشتركت لمشاركة الإشعارات، ستصلك حمولة تحتوي على المعلومات التعريفية لبطاقة المخطط الزمني. يمكنك بعد ذلك استرداد عنصر المخطط الزمني باستخدام 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
}

الاشتراك في إشعارات المشاركة

تتيح لك 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>"
          ]
      }
  ]
}

في حال عدم حدوث أي خطأ، يجب أن تستجيب الخدمة لواجهة برمجة التطبيقات باستخدام رمز حالة HTTP 200 OK. إذا استجابت الخدمة برمز خطأ، قد تحاول Mirror 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 الخاصة بالعنصر الزمني مع الترجمة المحوَّلة من المستخدم.