ربط تطبيق Chat بخدمات وأدوات أخرى

توضّح هذه الصفحة طريقة ربط تطبيق Google Chat بخدمة أو أداة خارج Google Chat. على الرغم من فعالية تطبيقات Chat في حد ذاتها، فهي تعمل غالبًا بالتعاون مع أنظمة أخرى وتتطلب التطبيقات المصاحبة لربط الحسابات، أو منح الإذن بالوصول إلى البيانات، أو عرض بيانات إضافية، أو ضبط الإعدادات المفضّلة للمستخدم.

طلب ضبط تطبيق Chat من مستخدم

إذا كان إكمال طلب يتطلب إعدادًا إضافيًا لا يمكن إكماله مباشرةً في تطبيق Chat، يمكنك عرض عنوان URL للإعدادات إلى المستخدم كجزء من رد عادي أو تقديمه بشكلٍ خاص في النموذج التالي:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "CONFIGURATION_URL"
  }
}

يؤدي ذلك إلى توجيه Google Chat إلى تقديم طلب خاص إلى المستخدم، حيث يكون CONFIGURATION_URL رابطًا يمكن للمستخدم أن يزوره لإجراء مصادقة أو تفويض أو إعداد إضافي. ولا يمكن استخدام ردّ REQUEST_CONFIG في أي وقت، بما في ذلك رسالة ردّ عادية. ويتم تجاهل أي نصوص أو بطاقات أو سمات أخرى.

إكمال طلب الضبط

يتضمّن كل حدث تفاعل MESSAGE يتلقّىه تطبيقك على Chat أيضًا مَعلمة configCompleteRedirectUrl. يجب ترميز عنوان URL هذا في عنوان URL للإعدادات لاستخدامه في إكمال العملية. إنّ إعادة التوجيه إلى عنوان URL هذا يشير إلى Google Chat بأنّه تم استيفاء طلب الضبط.

عند بدء تشغيل تطبيق Chat، يعتمد سير العملية على الرسالة المحدّدة التي تم استلامها. ردًا على رسالة مثل @app help، يجب أن يرسل تطبيق Chat رسالة بدون طلب ضبط إعدادات إضافية.

عندما تتم إعادة توجيه المستخدم بنجاح إلى configCompleteRedirectUrl الواردة في الرسالة الأصلية، يُجري Google Chat الخطوات التالية:

  1. امسح المطالبة التي تم عرضها للمستخدم البادئ.
  2. تحويل الرسالة الأصلية إلى علنية، مع جعلها مرئية للأعضاء الآخرين في المساحة.
  3. أرسِل الرسالة الأصلية إلى تطبيق Chat نفسه مرة ثانية.

تؤثر زيارة configCompleteRedirectUrl في رسالة مستخدم واحدة فقط. إذا حاول مستخدم إرسال رسالة إلى أحد تطبيقات Chat عدة مرات ونتيجة لذلك تلقّى عدة طلبات، لن يؤثّر النقر على طلب معيّن وإتمام عملية المصادقة والضبط إلا في تلك الرسالة بالتحديد. لن يتم تغيير الرسائل الأخرى.

عند إعادة إرسال حدث تفاعل MESSAGE بهذه الطريقة، يجب أن يكون مطابقًا للحدث الأصلي، ولكن هناك بعض الحالات التي قد تختلف فيها أحداث التفاعل MESSAGE. على سبيل المثال، عندما تشير رسالة إلى كل من تطبيق Chat "أ" وتطبيق Chat "ب"، يمكن للمستخدم تعديل الرسالة إذا استجاب تطبيق Chat "أ" لرسالة عادية قبل المصادقة باستخدام تطبيق Chat "ب". في هذه الحالة، يتلقّى تطبيق Chat "ب" نص الرسالة المعدَّل بعد إكمال المستخدم للمصادقة والضبط.

مصادقة مستخدم Chat خارج Chat

في بعض الحالات، مثل طلب تفويض OAuth لواجهة برمجة تطبيقات، يحتاج تطبيقك إلى الربط بعنوان URL خارج Chat مع الحفاظ على هوية المستخدم. وأفضل طريقة لتحديد هوية المستخدم في هذه الحالات هي حماية تطبيق الوجهة باستخدام تسجيل الدخول بحساب Google.

استخدِم الرمز المميّز للهوية الذي تم إصداره أثناء تسجيل الدخول للحصول على رقم تعريف المستخدم. تحتوي المطالبة "sub" على المعرّف الفريد للمستخدم ويمكن ربطها برقم تعريف المستخدم من Google Chat.

على الرغم من أنّ المعرّفَين غير متطابقَين تمامًا، يمكن فرضهما. لفرض قيمة sub على users/{user} في Google Chat، أضِف القيمة users/ قبلها. على سبيل المثال، تساوي قيمة المطالبة 123 اسم المستخدم users/123 في الرسائل المُرسَلة إلى تطبيق Chat.