Skip to content
تم إنشاء هذه الصفحة وترجمتها بمساعدة الذكاء الاصطناعي. إذا لاحظت أي أخطاء، لا تتردد في المساهمة في تحسينها. تعديل على GitHub

Lark / Feishu (لارك / فيشو)

اربط PRX بـ Lark (الدولي) أو Feishu (برّ الصين الرئيسي) باستخدام Open Platform API مع WebSocket long-connection أو تسليم أحداث HTTP webhook.

المتطلبات المسبقة

الإعداد السريع

1. إنشاء تطبيق Bot

  1. اذهب إلى لوحة المطور وأنشئ Custom App جديدًا
  2. ضمن "Credentials" انسخ App ID وApp Secret
  3. ضمن "Event Subscriptions" انسخ Verification Token
  4. أضف قدرة البوت واضبط الصلاحيات التالية:
    • im:message, im:message.group_at_msg, im:message.p2p_msg

2. التهيئة

toml
[channels_config.lark]
app_id = "cli_xxxxxxxxxxxxxxxx"
app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
verification_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
allowed_users = ["ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"]

لـ Feishu (الصين):

toml
[channels_config.lark]
app_id = "cli_xxxxxxxxxxxxxxxx"
app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
verification_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
use_feishu = true
allowed_users = ["*"]

3. التحقق

bash
prx channel doctor lark

مرجع الإعدادات

الحقلالنوعالافتراضيالوصف
app_idStringrequiredApp ID من لوحة مطور Lark/Feishu
app_secretStringrequiredApp Secret من لوحة المطور
verification_tokenStringnullVerification token للتحقق من webhook
encrypt_keyStringnullمفتاح تشفير لفك تشفير رسائل webhook
allowed_users[String][]معرّفات المستخدمين أو union IDs المسموح بها. فارغة = رفض الجميع. "*" = السماح للجميع
mention_onlyboolfalseعند true يرد فقط على @-mentions في المجموعات. الرسائل المباشرة تُعالج دائمًا
use_feishuboolfalseعند true يستخدم نقاط نهاية Feishu (CN) بدل Lark (الدولي)
receive_modeString"websocket"وضع استقبال الأحداث: "websocket" (افتراضي، لا يحتاج رابطًا عامًا) أو "webhook"
portu16nullمنفذ HTTP لوضع webhook فقط. مطلوب عندما receive_mode = "webhook"، ومُتجاهل في websocket

الميزات

  • WebSocket long-connection -- اتصال WSS دائم لأحداث فورية بدون رابط عام (الوضع الافتراضي)
  • وضع HTTP webhook -- طريقة بديلة لتسليم الأحداث عبر HTTP callbacks عند الحاجة
  • دعم Lark وFeishu -- تبديل تلقائي لنقاط API بين Lark (الدولي) وFeishu (الصين)
  • تفاعلات تأكيد الاستلام -- يضيف تفاعلات مناسبة للّغة/المنطقة (zh-CN وzh-TW وen وja)
  • مراسلة مباشرة ومجموعات -- يدعم الدردشات الخاصة ومحادثات المجموعات
  • إدارة tenant access token -- جلب وتجديد تلقائي لرموز الوصول الخاصة بالمؤسسة
  • إزالة تكرار الرسائل -- يمنع المعالجة المزدوجة لرسائل WebSocket ضمن نافذة 30 دقيقة

القيود

  • وضع WebSocket يتطلب اتصالًا خارجيًا ثابتًا بخوادم Lark/Feishu
  • وضع Webhook يتطلب نقطة نهاية HTTPS عامة
  • يجب إضافة البوت إلى المجموعة قبل أن يستقبل رسائل المجموعة
  • Feishu وLark يستخدمان نطاقات API مختلفة؛ تأكد أن use_feishu يطابق منطقة المؤسسة
  • قد يتطلب الأمر موافقة تطبيق المؤسسة حسب سياسات إدارة المؤسسة

استكشاف الأخطاء وإصلاحها

البوت لا يستقبل الرسائل

  • في وضع websocket، تأكد أن الاتصالات الخارجية إلى open.larksuite.com (أو open.feishu.cn) مسموحة
  • تحقق أن التطبيق يملك صلاحيات im:message المطلوبة وأنه تم اعتماده/نشره
  • تأكد أن البوت مضاف للمجموعة أو أن المستخدم بدأ رسالة مباشرة معه

"Verification failed" في أحداث webhook

  • تحقق أن verification_token يطابق القيمة في لوحة المطور
  • إذا كنت تستخدم encrypt_key فتأكد من مطابقته للإعداد في اللوحة تمامًا

منطقة API غير صحيحة

  • إذا كنت تستخدم مؤسسة Feishu (الصين)، اضبط use_feishu = true
  • إذا كنت تستخدم مؤسسة Lark (الدولي)، تأكد أن use_feishu = false (الافتراضي)

Released under the Apache-2.0 License.