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

ماتريكس ​

اربط PRX بشبكة Matrix باستخدام Client-Server API مع دعم اختياري للتشفير الطرفي (E2EE) ومراسلة تعتمد على الغرف.

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

  • خادم Matrix منزلي (مثل matrix.org أو Synapse/Dendrite مستضاف ذاتيًا)
  • حساب bot على الخادم مع access token
  • Room ID التي يجب أن يستمع فيها البوت
  • بناء PRX مع علم الميزة channel-matrix

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

1. إنشاء حساب Bot ​

أنشئ حسابًا للبوت على خادم Matrix الخاص بك. يمكنك استخدام Element أو سطر الأوامر:

bash
# Using curl against the homeserver API
curl -X POST "https://matrix.org/_matrix/client/v3/register" \
  -H "Content-Type: application/json" \
  -d '{"username": "prx-bot", "password": "secure-password", "auth": {"type": "m.login.dummy"}}'

2. الحصول على Access Token ​

bash
curl -X POST "https://matrix.org/_matrix/client/v3/login" \
  -H "Content-Type: application/json" \
  -d '{"type": "m.login.password", "user": "prx-bot", "password": "secure-password"}'

3. دعوة البوت إلى غرفة ​

من عميل Matrix لديك، ادعُ حساب البوت إلى الغرفة المطلوبة. دوّن Room ID (الصيغة: !abc123:matrix.org).

4. التهيئة ​

toml
[channels_config.matrix]
homeserver = "https://matrix.org"
access_token = "syt_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
room_id = "!abc123def456:matrix.org"
allowed_users = ["@alice:matrix.org", "@bob:matrix.org"]

5. التحقق ​

bash
prx channel doctor matrix

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

الحقلالنوعالافتراضيالوصف
homeserverStringrequiredرابط Matrix homeserver (مثل "https://matrix.org")
access_tokenStringrequiredMatrix access token لحساب البوت
user_idStringnullMatrix user ID (مثل "@bot:matrix.org"). يُستخدم لاستعادة الجلسة
device_idStringnullMatrix device ID. يُستخدم لاستمرارية جلسة E2EE
room_idStringrequiredRoom ID التي يتم الاستماع فيها (مثل "!abc123:matrix.org")
allowed_users[String][]Matrix user IDs المسموح بها. فارغة = رفض الجميع. "*" = السماح للجميع

الميزات ​

  • تشفير طرفي -- دعم الغرف المشفرة باستخدام matrix-sdk مع Vodozemac
  • مراسلة مبنية على الغرف -- الاستماع والرد داخل غرفة Matrix محددة
  • تفاعلات الرسائل -- إضافة تفاعلات لتأكيد الاستلام والإكمال
  • إيصالات قراءة -- إرسال read receipts للرسائل المعالجة
  • استمرارية الجلسة -- تخزين جلسات التشفير محليًا لاستمرارية E2EE بعد إعادة التشغيل
  • غير مرتبط بمزود محدد -- يعمل مع أي Matrix homeserver (Synapse وDendrite وConduit وغيرها)

القيود ​

  • يستمع حاليًا في غرفة واحدة فقط (محددة عبر room_id)
  • يتطلب علم الميزة channel-matrix وقت البناء
  • لا يدعم بعد نسخ مفاتيح E2EE الاحتياطي والتحقق المتبادل عبر cross-signing
  • الغرف الكبيرة ذات معدل الرسائل المرتفع قد تزيد استهلاك الموارد
  • يجب دعوة البوت إلى الغرفة قبل أن يتمكن من الاستماع

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

البوت لا يرد في الغرف المشفرة ​

  • تأكد من ضبط user_id وdevice_id لإدارة صحيحة لجلسات E2EE
  • احذف مخزن التشفير المحلي وأعد التشغيل لإعادة إنشاء جلسات التشفير
  • تحقق من أن حساب البوت موثّق/موثوق لدى أعضاء الغرفة

خطأ "Room not found" ​

  • تأكد من صحة صيغة Room ID (! في البداية و:homeserver في النهاية)
  • تأكد أن البوت تمت دعوته وانضم إلى الغرفة
  • Room aliases (مثل #room:matrix.org) غير مدعومة؛ استخدم Room ID

رفض Access token ​

  • قد تنتهي صلاحية Access tokens؛ أنشئ واحدًا جديدًا عبر Login API
  • تأكد أن الرمز يتبع الـ homeserver الصحيح

Released under the Apache-2.0 License.