Matrix
დაუკავშირეთ PRX Matrix ქსელს Client-Server API-ის გამოყენებით არასავალდებულო ბოლოდან ბოლომდე დაშიფვრით (E2EE) და ოთახზე დაფუძნებული შეტყობინებებით.
წინაპირობები
- Matrix homeserver (მაგ., matrix.org, ან თვითჰოსტინგი Synapse/Dendrite)
- ბოტის ანგარიში homeserver-ზე წვდომის ტოკენით
- ოთახის ID, სადაც ბოტი უნდა ისმინოს
- PRX აშენებული
channel-matrixფუნქციის ფლაგით
სწრაფი დაყენება
1. ბოტის ანგარიშის შექმნა
შექმენით ანგარიში თქვენს Matrix homeserver-ზე ბოტისთვის. შეგიძლიათ Element-ის ან ბრძანების ხაზის გამოყენება:
bash
# curl-ის გამოყენება 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. წვდომის ტოკენის მიღება
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 კლიენტიდან მოიწვიეთ ბოტის ანგარიში ოთახში, სადაც უნდა იმუშაოს. ჩაინიშნეთ ოთახის 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კონფიგურაციის მითითება
| ველი | ტიპი | ნაგულისხმევი | აღწერა |
|---|---|---|---|
homeserver | String | სავალდებულო | Matrix homeserver URL (მაგ., "https://matrix.org") |
access_token | String | სავალდებულო | Matrix წვდომის ტოკენი ბოტის ანგარიშისთვის |
user_id | String | null | Matrix მომხმარებლის ID (მაგ., "@bot:matrix.org"). გამოიყენება სესიის აღდგენისთვის |
device_id | String | null | Matrix მოწყობილობის ID. გამოიყენება E2EE სესიის უწყვეტობისთვის |
room_id | String | სავალდებულო | ოთახის ID მოსასმენად (მაგ., "!abc123:matrix.org") |
allowed_users | [String] | [] | ნებადართული Matrix მომხმარებლის ID-ები. ცარიელი = ყველას უარყოფა. "*" = ყველას დაშვება |
ფუნქციები
- ბოლოდან ბოლომდე დაშიფვრა -- მხარს უჭერს დაშიფრულ ოთახებს matrix-sdk-ით Vodozemac-ის გამოყენებით
- ოთახზე დაფუძნებული შეტყობინებები -- ისმენს და პასუხობს კონკრეტულ Matrix ოთახში
- შეტყობინების რეაქციები -- რეაგირებს შეტყობინებებზე მიღებისა და დასრულების დასადასტურებლად
- წაკითხვის დასტურები -- აგზავნის წაკითხვის დასტურებს დამუშავებული შეტყობინებებისთვის
- სესიის მუდმივობა -- ინახავს კრიპტო სესიებს ლოკალურად E2EE უწყვეტობისთვის გადატვირთვებს შორის
- Homeserver-ის ნეიტრალობა -- მუშაობს ნებისმიერ Matrix homeserver-თან (Synapse, Dendrite, Conduit და ა.შ.)
შეზღუდვები
- ამჟამად ისმენს ერთ ოთახში (მითითებული
room_id-ით) - საჭიროებს
channel-matrixფუნქციის ფლაგს კომპილაციის დროს - E2EE გასაღებების სარეზერვო ასლი და ჯვარედინი ხელმოწერის ვერიფიკაცია ჯერ მხარდაჭერილი არ არის
- დიდი ოთახები მაღალი შეტყობინებების მოცულობით შეიძლება რესურსების გამოყენება გაზარდოს
- ბოტი ოთახში უნდა იყოს მოწვეული, სანამ მოსმენას შეძლებს
პრობლემების მოგვარება
ბოტი დაშიფრულ ოთახებში არ პასუხობს
- დარწმუნდით, რომ
user_idდაdevice_idმითითებულია სწორი E2EE სესიის მართვისთვის - წაშალეთ ლოკალური კრიპტო საცავი და გადატვირთეთ დაშიფვრის სესიების ხელახლა დასამყარებლად
- შეამოწმეთ, რომ ბოტის ანგარიში ვერიფიცირებული/სანდოა ოთახის წევრების მიერ
"Room not found" შეცდომა
- დაადასტურეთ ოთახის ID ფორმატი სწორია (
!პრეფიქსი,:homeserverსუფიქსი) - დარწმუნდით, რომ ბოტი მოწვეულია და შეუერთდა ოთახს
- ოთახის ფსევდონიმები (მაგ.,
#room:matrix.org) მხარდაჭერილი არ არის; გამოიყენეთ ოთახის ID
წვდომის ტოკენი უარყოფილია
- წვდომის ტოკენებს შეიძლება ვადა გაუვიდეს; შექმენით ახალი login API-ის მეშვეობით
- დარწმუნდით, რომ ტოკენი სწორ homeserver-ს ეკუთვნის