جديد 📢 عرض الإطلاق لفترة محدودة: خصم حتى 70% على شهرك الأول في كل لعبة.عرض الباقات

كيف تربط Discord مع Telegram أو Matrix أو Slack عبر matterbridge

استضافة بوتات DiscordUpdated Oct 29, 20266 min read

يربط matterbridge قناة Discord بغرف على Telegram وMatrix وSlack وIRC وMattermost وغيرها: ما يُقال في غرفة يظهر في الغرف الأخرى. تختار الغرف في matterbridge.toml تحت Files، وتضع رمز بوت Discord في تبويب البوت، ورمز بوت Telegram تحت البيئة إن استخدمت Telegram.

الإصدار المثبّت هو 1.26.0. لم يُصدر المشروع شيئًا منذ 2023، لذلك نقدّمه كما هو.

  1. في Discord Developer Portal، أنشئ البوت وانسخ رمزه، وفعّل Server Members Intent وMessage Content Intent.
  2. في لوحة التحكم، اجعل السيرفر يشغّل matterbridge (تغيير ما يعمل)، والصق رمز Discord في بطاقة إعداد بوتك، وادعُ البوت.
  3. لـ Telegram، أنشئ بوتًا عبر @BotFather والصق رمزه تحت البوت، البيئة، بيانات الاعتماد، Telegram bot token.
  4. افتح matterbridge.toml في Files، واملأ معرّف سيرفر Discord والغرف المراد ربطها، واحذف السطر الذي يحتوي على PNH_EXAMPLE_CONFIG.
  5. اضغط تشغيل في Console.

كل خطوة بالتفصيل أدناه. يربط الملف المثال قناة Discord واحدة بمجموعة Telegram واحدة، وهي الحالة الأكثر شيوعًا.

1. جهة Discord

  1. أنشئ البوت وانسخ رمزه: كيف تنشئ بوت Discord وتحصل على رمزه. في صفحة Bot الخاصة بالتطبيق، فعّل Server Members Intent وMessage Content Intent واضغط Save Changes.
  2. افتح سيرفرك في لوحة التحكم. في نظرة عامة، في بطاقة إعداد بوتك، اضغط الخطوة ما الذي يعمل. إن لم تقل «يشغّل هذا البوت matterbridge.»، فاضغط تغيير ما يعمل، واختر matterbridge، واضغط الخطوة التالية، وحدّد خانة التأكيد، ثم اضغط تغيير نوع الخادم.
  3. الخطوة الاتصال بـ Discord: الصق الرمز في الصق رمز بوتك، واضغط ربط، ثم نعم، متابعة.
  4. الخطوة الأذونات: يجب أن يعرض الـ intents كلاهما مفعّل تحت في بوابتك. تحت رابط الدعوة، اضغط إضافة إلى خادم Discord. يتضمن الرابط إدارة Webhooks، وهو ما يتيح ظهور الرسائل القادمة من الجهة الأخرى باسم كل مرسل وصورته.

2. جهة Telegram

  1. في Telegram، تحدّث مع @BotFather: أرسل /newbot، واختر اسمًا، وانسخ الرمز الذي يعطيك إياه.
  2. ومع @BotFather أيضًا، أرسل /setprivacy، واختر بوتك، ثم اختر Disable. وإلا فلن يرى بوت Telegram في المجموعة سوى الأوامر، لا الرسائل العادية.
  3. أضف البوت إلى مجموعة Telegram الخاصة بك. ولمعرفة معرّف محادثة المجموعة (رقم سالب)، أضف @getidsbot إلى المجموعة لحظات.
  4. في لوحة التحكم، افتح تبويب البوت واضغط البيئة. في بطاقة بيانات الاعتماد، اضغط تعيين بجانب Telegram bot token، والصقه، ثم اضغط حفظ.

تبويب البوت، قسم البيئة، وبطاقة بيانات الاعتماد لـ matterbridge تعرض Telegram bot token محفوظًا.

3. املأ matterbridge.toml

  1. افتح Files واضغط matterbridge.toml.
  2. في [discord.mydiscord]، استبدل YOUR_DISCORD_SERVER_ID بمعرّف سيرفرك: في Discord، Settings، Advanced، فعّل Developer Mode، ثم اضغط بزر الفأرة الأيمن على أيقونة السيرفر واختر Copy Server ID.
  3. تحت [[gateway]]، اضبط channel الخاص بـ Discord على اسم قناتك دون #، وchannel الخاص بـ Telegram على معرّف محادثة المجموعة.
  4. احذف أول سطر يحتوي على PNH_EXAMPLE_CONFIG، ثم احفظ.

تبدو الأجزاء المملوءة هكذا:

[discord.mydiscord]
Server="123456789012345678"
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
AutoWebhooks=true
PreserveThreading=true

[telegram.mytelegram]
RemoteNickFormat="<{NICK}> "
MessageFormat="HTMLNick"

[[gateway]]
name="gateway1"
enable=true

    [[gateway.inout]]
    account="discord.mydiscord"
    channel="general"

    [[gateway.inout]]
    account="telegram.mytelegram"
    channel="-1001234567890"

الملف matterbridge.toml مفتوحًا في محرر الملفات، مع معرّف سيرفر Discord وقناتي البوابة معبأة.

أبقِ اسمي الحسابين discord.mydiscord وtelegram.mytelegram كما هما: بهما يصل الرمزان اللذان حفظتهما في لوحة التحكم إلى matterbridge، فلا تحتاج إلى كتابتهما في الملف.

4. شغّله

افتح Console واضغط تشغيل. عندما يكون الملف جاهزًا ترى سطر الإصدار، ثم:

[PlayNHost] Starting your bot

اكتب رسالة في قناة Discord، فتظهر في مجموعة Telegram باسم المرسل، والعكس صحيح.

Matrix أو Slack بدل Telegram

في لوحة التحكم حقل بيانات اعتماد لـ Telegram فقط. أما الشبكات الأخرى فأضف قسم حساب إلى matterbridge.toml مع بيانات دخوله في الملف نفسه، ثم أضف ذلك الحساب إلى البوابة. يستطيع كل من له وصول إلى ملفات سيرفرك قراءته، وتشمله النسخ الاحتياطية.

  • Matrix: أنشئ حساب Matrix منفصلًا للجسر، لا حسابك الشخصي. أضف [matrix.mymatrix] مع Server="https://matrix.org" (خادم homeserver الخاص بك) وLogin وPassword، ثم [[gateway.inout]] مع account="matrix.mymatrix" وchannel="#yourroom:matrix.org". الغرف المشفّرة غير مدعومة.
  • Slack: يتصل matterbridge 1.26.0 بـ Slack برمز مستخدم Slack مخصص. تغيّرت قواعد رموز Slack منذ ذلك الإصدار، فاتبع wiki الخاص بـ matterbridge للاتصال بـ Slack وجرّبه قبل أن تعتمد عليه.

كل خيارات كل شبكة موجودة في wiki الخاص بـ matterbridge (github.com/42wim/matterbridge/wiki). أعد تشغيل البوت بعد كل تغيير في الملف.

أسطر Console التي قد تراها

[PlayNHost] matterbridge is not set up yet: matterbridge.toml is still the example.

ما زال السطر PNH_EXAMPLE_CONFIG أو YOUR_DISCORD_SERVER_ID في الملف. أكمل الخطوة 3، ثم اضغط إعادة التشغيل.

[PlayNHost] Created matterbridge.toml from the example.

لم يكن matterbridge.toml موجودًا، فكُتب مثال جديد. املأه كما في الخطوة 3.

[PlayNHost] matterbridge is not installed. Reinstall it on the Bot page, Code, then press Start.

البرنامج ناقص. اضغط إعادة التثبيت في بطاقة إعادة التثبيت تحت البوت، الكود وأكّد. يبقى matterbridge.toml كما هو.

من المفيد أن تعرف

  • يسجّل Debug log تحت البوت، الكود، الإعدادات كل رسالة يمرّرها matterbridge. شغّله فقط أثناء بحثك عن مشكلة: اكتب 1، واضغط حفظ، وأعد التشغيل؛ والقيمة 0 تعطّله.
  • يتصل matterbridge بشبكات الدردشة من الداخل إلى الخارج فقط. لا يفتح أي منفذ ولا يحتاج إلى نطاق.
  • تكتب بوت Telegram أو Slack أو Matrix خاصًا بك بدلًا من ذلك؟ كيف تستضيف بوت Telegram أو Twitch أو Slack أو Matrix.

بوتك مستضاف في مكان آخر بالفعل؟ انقله إلينا

أحدث مقالات المدونة