تُنشأ القناة دائمًا في مساحة العمل التي يملكها مفتاح API. ولا تستطيع جلسة الربط إضافة قناة في أي مكان آخر.
كيف يعمل
1
الخادم لديك ينشئ جلسة
استدعِ
POST /v1/connect-sessions بمفتاح يحمل الصلاحية channels:manage، فتحصل على connectUrl.2
الواجهة لديك تفتحه في نافذة منبثقة
تنتقل النافذة مباشرة إلى ميتا أو تيك توك لتسجيل الدخول. ومع
whatsapp_qr تعرض رمز QR للمسح بدلًا من ذلك.3
النافذة تبلّغ بالنتيجة ثم تُغلق
ترسل النتيجة إلى نافذتك عبر
postMessage، أو تنتقل إلى redirectUri إن لم تكن هناك نافذة تُبلَّغ.4
الخادم لديك يتحقق
اقرأ
GET /v1/connect-sessions/{id}، أو اشترك في حدث Webhook المسمى connect_session.completed. سجل الخادم هو المرجع، ورسالة المتصفح مجرد إشارة.1. أنشئ جلسة
افعل ذلك على خادمك — فهو يحتاج مفتاح API الخاص بك، ويجب ألا يصل المفتاح إلى المتصفح أبدًا.
أرسل
origin أو redirectUri أو كليهما. ويجب أن يستخدم كلاهما https؛ ولا يُقبل http العادي إلا مع localhost لتتمكن من الاختبار محليًا.
2. افتح النافذة المنبثقة
افتحها مباشرة من معالج النقرة. فالنافذة التي تُفتح بعدawait غالبًا ما يحجبها المتصفح.
event.origin. فأي صفحة تستطيع إرسال رسالة إلى نافذتك؛ ورسالتنا وحدها هي القادمة من https://crm.linkiasoft.com وتحمل source: 'linkia-connect'.
دون نافذة فاتحة: إعادة التوجيه
حين لا تستطيع النافذة الوصول إلى نافذتك، تنتقل إلىredirectUri والنتيجة في سلسلة الاستعلام:
3. تحقق على خادمك
تبقى الجلسة متاحة للقراءة 24 ساعة.
إن أغلق الشخص النافذة ببساطة فلن يُرسل شيء — وتبقى الجلسة
pending حتى تنتهي صلاحيتها. اعتبر النافذة المغلقة دون رسالة “لم يتم الربط”، ودعه يحاول مجددًا.
أو استمع إلى الـ Webhook
اشترك بنقطة نهاية فيconnect_session.completed من التكاملات ← Webhooks. يُطلق الحدث حين تنتهي الجلسة بـ connected أو cancelled:
أمور ينبغي معرفتها
جلسة واحدة، قناة واحدة. إن شمل تسجيل دخول الشخص إلى فيسبوك عدة صفحات، فإنه يختار واحدة. وشغّل جلسة أخرى للصفحة التالية. قواعد مساحة العمل ما زالت سارية. تُرفض الجلسة مسبقًا بـ403 إن لم تكن مساحة عملك مفعّلة للربط المباشر مع ميتا لنوع القناة هذا، ويفشل الربط نفسه إن بلغت الخطة حدّ القنوات. وتعرض النافذة السبب للشخص.
إعادة الربط هي الاستدعاء نفسه. ربط رقم أو صفحة أو حساب موجود أصلًا كقناة في مساحة عملك يحدّثه بدل أن يضيف نسخة مكررة — ويكون channelId هو معرّف القناة الموجودة.
قد ينتهي واتساب بتحذير. إن حفظت ميتا الرقم لكنها لم تسجّله في Cloud API بعد، فستظل الجلسة تُبلغ connected وتظهر القناة في Linkiasoft على أنها تحتاج إجراءً. تحقق من connection_status الخاص بها عبر GET /v1/connect/channels قبل الإرسال.
واتساب عبر رمز QR. مع whatsapp_qr تعرض النافذة رمز QR فورًا؛ يفتح الشخص واتساب ← الإعدادات ← الأجهزة المرتبطة ← ربط جهاز ويمسحه. ويقدّم تبويب استخدام رقم الهاتف رمز ربط من 8 أحرف بدلًا من ذلك، حين يكون الهاتف هو الشاشة الوحيدة. يظل الرقم يعمل في تطبيق واتساب كما كان. هذا ربط غير رسمي (واتساب ويب)، فلا يمكنه إرسال قوالب رسائل واتساب — استخدم whatsapp حين تحتاجها. يُتحقق من حد القنوات في الخطة عند إنشاء الجلسة، فتحصل مساحة العمل الممتلئة على 403 قبل أن تُفتح النافذة.
حاجبات النوافذ المنبثقة. يجري كل شيء داخل النافذة المنبثقة الواحدة التي تفتحها: يُحمَّل تسجيل الدخول لدى المزوّد في النافذة نفسها ثم يعود إلى صفحتنا، فلا تُفتح نافذة ثانية. افتح النافذة عند نقرة الشخص (لا بعد await) لتسمح بها الحاجبات.
