ในการเชื่อมต่อ Matrix กับ WhatsApp, Telegram หรือ Discord ให้เรียกใช้บริการบริดจ์ที่เข้ากันได้ข้างๆ โฮมเซิร์ฟเวอร์ของคุณ ลงทะเบียนบริการนั้นเป็นบริการแอปพลิเคชันของ Matrix จากนั้นเชื่อมโยงหรืออนุญาตบัญชีภายนอก แต่ละเครือข่ายต้องการการกำหนดค่าบริดจ์และข้อมูลประจำตัวของตนเอง การที่กระบวนการทำงานอยู่เพียงอย่างเดียวไม่ได้พิสูจน์ว่าห้องสนทนาเชื่อมต่อกันแล้ว: ทดสอบการส่งข้อความทั้งสองทิศทางหลังจากตั้งค่าเสร็จแล้ว
โฮมเซิร์ฟเวอร์ Matrix หนึ่งเครื่องสามารถเชื่อมต่อกับบริการบริดจ์ที่กำหนดค่าแยกกันได้สามบริการ
คู่มือนี้ใช้mautrix-whatsappและmautrix-telegramรวมถึงmatrix-appservice-discord จากโปรเจกต์ Matrix.org สำหรับ Discord บริดจ์เป็นโปรแกรมฝั่งเซิร์ฟเวอร์แยกต่างหาก ไม่ใช่สวิตช์ใน Element ข้อกำหนดของ Matrix เรียกการผสานรวมประเภทนี้ว่าบริการแอปพลิเคชัน: มันจะรับเหตุการณ์ที่เกี่ยวข้องจากโฮมเซิร์ฟเวอร์และสามารถสร้างผู้ใช้หรือห้องภายในเนมสเปซที่ลงทะเบียนไว้ได้ ดูภาพรวมทางเทคนิคของ Matrixและข้อกำหนด API ของบริการแอปพลิ เคชัน
คุณควรติดตั้งบริดจ์ด้วยตนเองหรือใช้เซิร์ฟเวอร์สาธารณะดี?
การโฮสต์ด้วยตนเองช่วยให้คุณควบคุมได้ว่าบริดจ์จะทำงานที่ใด วิธีการจัดเก็บบันทึกและข้อมูลประจำตัว และผู้ใช้รายใดสามารถเชื่อมต่อได้ นอกจากนี้ยังหมายความว่าคุณต้องดูแลบริการทั้งสาม อัปเดต ปกป้องฐานข้อมูล และแก้ไขปัญหาการเชื่อมต่อด้วยตนเอง บริดจ์สาธารณะอาจทดสอบได้เร็วกว่า แต่ผู้ให้บริการจะเป็นผู้ควบคุมความพร้อมใช้งาน นโยบายการเข้าถึง และการจัดการข้อมูล ตรวจสอบเอกสารและห้องสนับสนุนของบริดจ์ก่อนเลือกใช้งาน เนื่องจากความพร้อมใช้งานและคุณสมบัติอาจเปลี่ยนแปลงได้
การเชื่อมต่อเหล่านี้ไม่เทียบเท่ากับการรองรับโดยตรงจากบริการรับส่งข้อความ ฟีเจอร์ที่เชื่อมต่ออาจแตกต่างกันไปในแต่ละเครือข่าย และการโทรด้วยเสียง/วิดีโอ การตอบกลับ การแก้ไข หัวข้อสนทนา การแจ้งเตือนการอ่าน ประวัติ หรือการจัดการกลุ่มอาจไม่สมบูรณ์ ทดสอบฟีเจอร์ที่ชุมชนของคุณใช้งานจริงก่อนที่จะย้ายการสนทนาที่สำคัญ
คุณต้องเตรียมอะไรบ้างก่อนติดตั้งอะไรก็ตาม?
- โฮมเซิร์ฟเวอร์ Matrix ที่รองรับบริการแอปพลิเคชันและการเข้าถึงของผู้ดูแลระบบเพื่อลงทะเบียนแอปพลิเคชันเหล่านั้น ตัวอย่างด้านล่างใช้ Synapse ส่วนโฮมเซิร์ฟเวอร์อื่นๆ อาจมีกระบวนการลงทะเบียนของตนเอง
- เส้นทางเครือข่ายที่สามารถเข้าถึงได้ระหว่างโฮมเซิร์ฟเวอร์และบริดจ์แต่ละตัว ใน Docker นั้น
localhostภายในคอนเทนเนอร์หนึ่งๆ หมายถึงตัวคอนเทนเนอร์นั้นเอง หากต้องการเข้าถึงคอนเทนเนอร์อื่น ให้ใช้เครือข่าย Docker ที่ใช้ร่วมกันและชื่อเครือข่ายของบริการบริดจ์ - ต้องมีการกำหนดค่า ไฟล์ลงทะเบียน ตำแหน่งจัดเก็บข้อมูลถาวร และที่เก็บข้อมูลลับแยกต่างหากสำหรับแต่ละบริดจ์ โปรดปฏิบัติตามคำแนะนำของโครงการปัจจุบันสำหรับฐานข้อมูล เวอร์ชันรันไทม์ และอิมเมจคอนเทนเนอร์ที่รองรับ เนื่องจากข้อกำหนดอาจแตกต่างกันและเปลี่ยนแปลงได้
- สำหรับ WhatsApp ต้องมีโทรศัพท์ที่มีบัญชีที่คุณต้องการเชื่อมต่อ สำหรับ Telegram ต้องมีบัญชีที่ลงชื่อเข้าใช้งานแล้วผ่านแอปพลิเคชัน Telegram อย่างเป็นทางการ สำหรับ Discord ต้องมีแอปพลิเคชัน/บอท Discord และได้รับอนุญาตจากเจ้าของเซิร์ฟเวอร์หรือผู้ดูแลระบบ
Synapse จะอ่านไฟล์ลงทะเบียนบริดจ์แต่ละไฟล์จากพาธที่กำหนดค่าไว้ภายใต้app_service_config_files; พาธที่แสดงเป็นเพียงตัวอย่าง
จะลงทะเบียนบริดจ์กับ Synapse ได้อย่างไร?
- ติดตั้งบริดจ์ทีละตัวเริ่มจากเวอร์ชันล่าสุดและไฟล์การกำหนดค่าตัวอย่าง ตั้งค่าที่อยู่โฮมเซิร์ฟเวอร์ ชื่อเซิร์ฟเวอร์สาธารณะ ที่อยู่ตัวรับฟังบริดจ์ ฐานข้อมูล และเส้นทางจัดเก็บข้อมูลตามคู่มือของโครงการนั้นๆ หลีกเลี่ยงการใช้ฐานข้อมูลเดียวกันระหว่างบริการบริดจ์ที่ไม่เกี่ยวข้องกัน
- สร้างไฟล์ลงทะเบียนกระบวนการติดตั้งของบริดจ์จะสร้างไฟล์ YAML สำหรับลงทะเบียน ซึ่งประกอบด้วยข้อมูลประจำตัวของแอปพลิเคชันและบริการ รวมถึงโทเค็นการตรวจสอบสิทธิ์ โปรดดูแลโทเค็นเหล่านั้นเหมือนรหัสผ่าน: จำกัดสิทธิ์การเข้าถึงไฟล์ อย่าบันทึกโทเค็นเหล่านั้นลงใน Git และอย่าคัดลอกไปวางในห้องสนทนาสาธารณะ ภาพหน้าจอ หรือโพสต์สนับสนุน
- ทำให้ไฟล์นั้นสามารถมองเห็นได้โดย Synapseคัดลอกหรือติดตั้งไฟล์ลงทะเบียนในตำแหน่งที่กระบวนการ Synapse สามารถอ่านได้ เพิ่มพาธของไฟล์นั้นไว้ด้านล่าง
app_service_config_filesในไฟล์ .env ของ Synapse homeserver.yamlเพิ่มรายการแยกต่างหากสำหรับแต่ละบริดจ์ อย่าเขียนทับรายการของบริการอื่นคู่มือการลงทะเบียนแอปเซอร์วิสของ Mautrixอธิบายขั้นตอนการทำงานนี้และระบุว่าต้องรีสตาร์ท Synapse หลังจากที่รายการลงทะเบียนเปลี่ยนแปลง - รีสตาร์ทและตรวจสอบบันทึกรีสตาร์ท Synapse หลังจากการเปลี่ยนแปลงการลงทะเบียน จากนั้นเริ่มบริดจ์ หาก Synapse เริ่มทำงานไม่สำเร็จ ให้ตรวจสอบการเยื้องของ YAML เส้นทางไฟล์ภายในคอนเทนเนอร์ และสิทธิ์ในการอ่านก่อน หากบริดจ์เริ่มทำงานแต่ไม่สามารถเชื่อมต่อได้ ให้ตรวจสอบ URL ของโฮมเซิร์ฟเวอร์ เส้นทางเครือข่าย ใบรับรอง TLS และที่อยู่ผู้ฟัง
สำหรับการใช้งาน Docker ที่อยู่บริการแอปพลิเคชันที่กำหนดค่าไว้ในบริดจ์จะต้องสามารถเข้าถึงได้จากคอนเทนเนอร์โฮมเซิร์ฟเวอร์บันทึกการกำหนดค่าเริ่มต้นของ Mautrixอธิบายว่าเหตุใดชื่อคอนเทนเนอร์บนเครือข่ายที่ใช้ร่วมกันจึงใช้งานได้ในบางกรณีที่ใช้งานlocalhostไม่ได้ โครงการของ Discord ยังได้บันทึกขั้นตอนการลงทะเบียนและตัวอย่างการกำหนดค่าไว้ในREADME ของโครงการต้นทางด้วย
จะเชื่อมต่อบัญชี WhatsApp ได้อย่างไร?
หลังจากลงทะเบียนและใช้งาน mautrix-whatsapp แล้ว ให้เปิดแชทส่วนตัวใน Matrix กับบอทบริดจ์ และส่งข้อความlogin qrเปิด WhatsApp บนโทรศัพท์ที่เป็นเจ้าของบัญชี ไปที่อุปกรณ์ที่เชื่อมโยงและสแกนรหัสที่แสดงโดยบริดจ์ เอกสารประกอบของบริดจ์ยังอธิบายถึงตัวเลือกการจับคู่หมายเลขโทรศัพท์ด้วย ให้ใช้วิธีที่เวอร์ชันที่คุณติดตั้งรองรับในปัจจุบัน อย่าคัดลอกรหัสเข้าสู่ระบบหรือภาพ QR ลงในห้องสาธารณะ
ขั้นตอนการตรวจสอบสิทธิ์ของ WhatsApp Bridge จะขอให้คุณเชื่อมต่อ Bridge เป็นอุปกรณ์จากบัญชี WhatsApp บนโทรศัพท์ของคุณ
โปรดเตรียมโทรศัพท์และบัญชีให้พร้อมใช้งานระหว่างการจับคู่ และยืนยันว่าบริดจ์รายงานการเข้าสู่ระบบสำเร็จก่อนเปิดห้องสนทนา การเชื่อมต่อบัญชีนี้ทำผ่านเซสชันแบบอุปกรณ์เสริม ไม่ได้เปลี่ยนบริดจ์ให้เป็นการผสานรวม WhatsApp Business API อย่างเป็นทางการ WhatsApp อาจเปลี่ยนแปลงพฤติกรรมการเชื่อมต่ออุปกรณ์ ดังนั้นโปรดปฏิบัติตามคำแนะนำการตรวจสอบสิทธิ์ mautrix-whatsapp ในปัจจุบันบริดจ์อาจซิงค์เฉพาะประวัติที่บริการภายนอกจัดเตรียมไว้สำหรับอุปกรณ์ที่เชื่อมต่อและที่บริดจ์นำไปใช้เท่านั้น
คุณเชื่อมต่อ Telegram อย่างไร?
เริ่มแชทส่วนตัวกับบอท mautrix-telegram ระบบเชื่อมต่อนี้รองรับการเข้าสู่ระบบด้วย QR Code และรหัสเข้าสู่ระบบหกหลักที่ส่งไปยังบัญชี Telegram ที่ลงชื่อเข้าใช้แล้ว โดยจะไม่สร้างบัญชี Telegram ใหม่ สำหรับการเข้าสู่ระบบด้วย QR Code ให้เปิด Telegram บนโทรศัพท์ของคุณ ไปที่การตั้งค่า > อุปกรณ์ > เชื่อมต่ออุปกรณ์เดสก์ท็อปจากนั้นส่งข้อความlogin qrไปยังบอทเชื่อมต่อและสแกนรหัส ทำตามคำแนะนำของบอทหากบัญชี Telegram ของคุณเปิดใช้งานการยืนยันตัวตนสองขั้นตอนไว้
หน้าจอ Link Desktop Device ของ Telegram ใช้สำหรับอนุญาตการเชื่อมต่อ โดยป้ายกำกับเมนูอาจแตกต่างกันไปตามเวอร์ชันของแอป
ใช้บัญชีที่สร้างไว้แล้วและปฏิบัติตามกฎการเข้าสู่ระบบของ Telegram ผู้ดูแลระบบบริดจ์เตือนว่า Telegram อาจมองว่าบัญชีใหม่ที่ใช้ไคลเอนต์ของบุคคลที่สามน่าสงสัย ซึ่งเป็นความเสี่ยงจากฝั่งแพลตฟอร์ม ไม่ใช่สิ่งที่ผู้ดูแลระบบ Matrix สามารถรับประกันได้ โปรดตรวจสอบคู่มือการตรวจสอบสิทธิ์ของ mautrix-telegramก่อนเข้าสู่ระบบ และเก็บรหัสใช้ครั้งเดียวหรือรหัสผ่านไว้ในแชทส่วนตัวของบอท
คุณตั้งค่า Discord อย่างไร?
โปรเจ็กต์ matrix-appservice-discord ใช้แอปพลิเคชันและบอท Discord สร้างแอปพลิเคชันในDiscord Developer Portalสร้าง/กำหนดค่าผู้ใช้บอท และตั้งค่าข้อมูลประจำตัวของบอทในการกำหนดค่าของบริดจ์โดยใช้ตัวอย่างปัจจุบันของโปรเจ็กต์ อย่าเปิดเผยโทเค็นของบอท เรียกใช้คำสั่งหรือขั้นตอน authorization-link ที่ระบุไว้ในเอกสารของบริดจ์ จากนั้นให้เจ้าของเซิร์ฟเวอร์ Discord อนุญาตบอทสำหรับเซิร์ฟเวอร์ที่ต้องการด้วยสิทธิ์เฉพาะที่บริดจ์ต้องการเท่านั้น
การตั้งค่า Discord เริ่มต้นด้วยการสมัครใช้งานและบอท โดยฟิลด์และตัวเลือกการอนุญาตต่างๆ จะเป็นไปตามพอร์ทัลปัจจุบันของ Discord และตัวอย่างการกำหนดค่าของบริดจ์
สำหรับช่องสนทนาเฉพาะ ให้ใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของ Discord เพื่อรับ ID เซิร์ฟเวอร์และ ID ช่องสนทนา เชิญบอทเชื่อมต่อฝั่ง Matrix ไปยังห้อง Matrix และใช้คำสั่งห้องสนทนาตามที่ระบุไว้ในเอกสาร README ต้นฉบับมีตัวอย่างในรูปแบบดังกล่าว!discord bridge ServerID ChannelIDอาจต้องมีการอนุมัติจากผู้ดูแลระบบเพื่อเชื่อมต่อให้สมบูรณ์ อย่าใช้ ID จากภาพประกอบ: ให้แทนที่ด้วยตัวระบุจริง และยืนยันคำสั่งและสิทธิ์การเข้าถึงกับ README สำหรับเวอร์ชันที่คุณติดตั้ง
คำสั่ง Discord room จะเชื่อมโยงห้อง Matrix กับเซิร์ฟเวอร์และช่อง Discord; แทนที่ด้วย ID จริงของคุณและทำตามขั้นตอนการอนุมัติที่ปรากฏขึ้น
Discord นั้นขึ้นอยู่กับสิทธิ์ของบอทและนโยบายของเซิร์ฟเวอร์เป็นอย่างมาก หากบอทสามารถเข้าร่วมได้ แต่ข้อความไม่ไหล โปรดตรวจสอบว่าช่องนั้นมองเห็นได้สำหรับบอทหรือไม่ สิทธิ์ในการส่งข้อความที่จำเป็นได้รับการอนุญาตแล้ว และการเชื่อมต่อระหว่างเซิร์ฟเวอร์กับบอทได้ดำเนินการยืนยันโดยผู้ดูแลระบบเรียบร้อยแล้ว โครงการนี้ระบุตัวเองว่าเป็นเวอร์ชันเบต้าในไฟล์ README ดังนั้นโปรดตรวจสอบสถานะปัจจุบันของโครงการและพฤติกรรมที่รองรับ แทนที่จะสันนิษฐานว่าทุกฟีเจอร์ของ Discord จะเหมือนกัน
คุณจะตรวจสอบได้อย่างไรว่าสะพานใช้งานได้?
เริ่มจากการทดลองใช้ห้องทดสอบส่วนตัวขนาดเล็กและช่องทางที่มีความเสี่ยงต่ำก่อน ส่งข้อความธรรมดาที่ไม่ซ้ำกันจาก Matrix และยืนยันว่าข้อความนั้นปรากฏบนบริการระยะไกล จากนั้นตอบกลับจากฝั่งระยะไกลและยืนยันว่าการตอบกลับปรากฏใน Matrix ตรวจสอบการอ้างอิง การเรียงลำดับการตอบกลับ ไฟล์แนบ การแก้ไข และปฏิกิริยาต่างๆ แยกต่างหาก หากสิ่งเหล่านี้มีความสำคัญต่อกรณีการใช้งานของคุณ สถานะกระบวนการสีเขียวบอกเพียงว่าโปรแกรมกำลังทำงานอยู่เท่านั้น ไม่ได้ยืนยันว่าการเข้าสู่ระบบสำเร็จ บอทมีสิทธิ์เข้าถึงช่องทาง หรือการแมปห้องกับช่องทางถูกต้อง
วิธีตรวจสอบแบบครบวงจรที่มีประโยชน์คือ การส่งข้อความทดสอบในแต่ละทิศทาง และตรวจสอบว่าข้อความนั้นปรากฏในห้องที่เชื่อมต่อกันหรือไม่
เมื่อการทดสอบล้มเหลว ให้เปรียบเทียบเวลาที่แน่นอนของข้อความกับบันทึกของบริดจ์และโฮมเซิร์ฟเวอร์ ลบข้อมูลโทเค็นการเข้าถึง หมายเลขโทรศัพท์ รหัส Discord ในกรณีที่ข้อมูลมีความละเอียดอ่อน และชื่อผู้ติดต่อก่อนที่จะแชร์บันทึก สำหรับการใช้งานแบบคอนเทนเนอร์ ให้ตรวจสอบด้วยว่าไฟล์ลงทะเบียนถูกติดตั้งภายใน Synapse แล้ว ปลายทางของบริดจ์สามารถแก้ไขได้บนเครือข่ายที่ใช้ร่วมกัน และไม่มีไฟร์วอลล์ใดปิดกั้นตัวรับฟังที่กำหนดค่าไว้
ใช้บันทึกของบริดจ์และโฮมเซิร์ฟเวอร์เพื่อตรวจสอบสถานะการทำงานและการเชื่อมต่อ ตัวอย่างบรรทัดสถานะเหล่านี้ไม่ใช่ผลการวินิจฉัยที่บันทึกไว้
คุณควรรู้อะไรบ้างเกี่ยวกับการเข้ารหัสและความเป็นส่วนตัว?
บริการแอปพลิเคชันจะรับเหตุการณ์ในเนมสเปซและห้องที่ได้รับการกำหนดค่าให้จัดการ อย่าคิดว่าห้อง Matrix ที่เข้ารหัสจะสามารถอ่านได้โดยบริดจ์ทุกตัวโดยอัตโนมัติ บริดจ์ Mautrix บางตัวรองรับการเข้ารหัสแบบ end-to-bridge ซึ่งต้องกำหนดค่าอย่างรอบคอบและมีข้อกำหนดการจัดการคีย์เฉพาะของตนเอง โปรดศึกษาคู่มือการเข้ารหัสแบบ end-to-bridge ของ Mautrixและตรวจสอบการรองรับสำหรับบริดจ์เฉพาะนั้น ๆ ความสามารถในการเข้ารหัสของบริดจ์ Discord อาจแตกต่างกัน หากบริดจ์ไม่สามารถจัดการโหมดการเข้ารหัสของห้องได้ ให้ใช้ห้องทดสอบที่ไม่เข้ารหัสที่เหมาะสม หรือเลือกบริดจ์ที่มีเอกสารรองรับแทนที่จะทำให้ห้องใช้งานจริงอ่อนแอลงด้วยการคาดเดา
สุดท้ายนี้ โปรดจำไว้ว่าเนื้อหาข้อความและข้อมูลประจำตัวบัญชีจะถูกส่งผ่านซอฟต์แวร์ที่คุณใช้งานหรือผู้ให้บริการบริดจ์สาธารณะใช้งาน จำกัดผู้ที่สามารถเชิญบอทบริดจ์ ปกป้องฐานข้อมูลและการสำรองข้อมูล หมุนเวียนโทเค็นหากเกิดการรั่วไหล และตรวจสอบแนวทางการรักษาความเป็นส่วนตัวและความปลอดภัยของบริดจ์ในปัจจุบัน ตรวจสอบเอกสารต้นฉบับอีกครั้งก่อนการอัปเกรด: คีย์การกำหนดค่า ขั้นตอนการเข้าสู่ระบบ การพึ่งพา และนโยบายแพลตฟอร์มอาจเปลี่ยนแปลงได้โดยอิสระ
รายการตรวจสอบการตัดสินใจอย่างรวดเร็ว
- เลือกอินสแตนซ์บริดจ์ที่คุณไว้วางใจผู้ดำเนินการและนโยบายการเข้าถึง
- ลงทะเบียนบริดจ์แต่ละตัวแยกกัน และปกป้องโทเค็นที่สร้างขึ้นแต่ละตัว
- ตรวจสอบว่าโฮมเซิร์ฟเวอร์สามารถเข้าถึงที่อยู่บริดจ์ได้หลังจากการติดตั้งเสร็จสิ้นแล้ว
- เชื่อมต่อบัญชี WhatsApp/Telegram แบบส่วนตัว และอนุญาตการใช้งานบอท Discord ด้วยผู้ดูแลระบบเซิร์ฟเวอร์
- ทดสอบข้อความทั้งสองทิศทาง จากนั้นทดสอบเฉพาะฟีเจอร์เพิ่มเติมที่คุณต้องการ
- ตรวจสอบการรองรับการเข้ารหัส พฤติกรรมประวัติ และสถานะการบำรุงรักษา ก่อนที่จะใช้งานบริดจ์สำหรับการสื่อสารที่ละเอียดอ่อนหรือจำเป็น