ចាប់ផ្តើម
អំពី Pabal
Pabal ជាអ្វី រចនាឡើងយ៉ាងដូចម្តេច អ្វីដែលដំណើរការហើយនៅពេលនេះ និងអ្វីដែលមិនទាន់ដំណើរការ។
Pabal ជាអ្វី
Pabal (파발, 擺撥) គឺជាប្រព័ន្ធស្ថានីយនាំសារនៃសម័យរាជវង្សជូសុន ដែលអ្នកនាំសារប្តូរសេះតាមស្ថានីយនីមួយៗ ហើយបន្តរត់នាំដំណឹងបន្ទាន់។ Pabal.me ជាកម្មវិធីផ្ញើសារដែលដាក់ឈ្មោះតាមប្រព័ន្ធនោះ — ជាកម្មវិធីផ្ញើសារដែលត្រូវគ្នាជាមួយ Telegram ដែលស្ថាប័ន ឬសហគមន៍មួយដំណើរការនៅលើម៉ាស៊ីនមេផ្ទាល់ខ្លួន។
- អ្នកដំណើរការម៉ាស៊ីនមេដោយខ្លួនឯង។ គណនី ការសន្ទនា និងរូបថតទាំងអស់ ត្រូវបានរក្សាទុកនៅលើម៉ាស៊ីនមេ និងមូលដ្ឋានទិន្នន័យ (PostgreSQL) របស់ប្រតិបត្តិករ។ កម្មវិធីម៉ាស៊ីនមេមានឈ្មោះថា HunsTelegram (Java 21)។
- និយាយភាសាដូច Telegram ទាំងស្រុង។ រវាងកម្មវិធី និងម៉ាស៊ីនមេ គឺ MTProto 2.0 (layer 216) ដូច Telegram ហើយរវាងបូត និងម៉ាស៊ីនមេ គឺ HTTP Bot API ដូច Telegram។ ដូច្នេះ កម្មវិធី បណ្ណាល័យ និងបូតដែលបង្កើតសម្រាប់ Telegram អាចភ្ជាប់ទៅ Pabal បាន ដោយគ្រាន់តែប្តូរអាសយដ្ឋាន។
- ជាពិភពដាច់ដោយឡែក ដែលមិនភ្ជាប់ជាមួយ Telegram។ គណនី Pabal មាននៅលើម៉ាស៊ីនមេ Pabal តែប៉ុណ្ណោះ ហើយមិនអាចផ្ញើ ឬទទួលសារជាមួយអ្នកប្រើ Telegram បានទេ។
Pabal រចនាឡើងយ៉ាងដូចម្តេច
ការពន្យល់ដ្យាក្រាម
- តំបន់បី៖ ខាងឆ្វេងជាអ្វីដែលដំណើរការនៅក្រៅម៉ាស៊ីនមេ (កម្មវិធី កម្មវិធីបូត កម្មវិធីរុករក) កណ្តាលជាច្រកចូលពីររបស់ម៉ាស៊ីនមេ ហើយខាងស្តាំជាផ្នែកខាងក្នុងម៉ាស៊ីនមេ។ កម្មវិធីបូតក៏ដំណើរការនៅក្រៅម៉ាស៊ីនមេដែរ គឺនៅលើកុំព្យូទ័ររបស់ប្រតិបត្តិករ ឬអ្នកអភិវឌ្ឍន៍។
- មានច្រកចូលតែពីរប៉ុណ្ណោះ៖ កម្មវិធីភ្ជាប់ដោយផ្ទាល់តាម ច្រក MTProto (8443) (មិនត្រូវការ HTTPS ទេ ព្រោះ MTProto អ៊ិនគ្រីបដោយខ្លួនឯង) ហើយគេហទំព័រ និង Bot API ចូលតាម HTTPS (443)។
- បូតភ្ជាប់តាមផ្លូវមួយក្នុងចំណោមផ្លូវពីរ៖ ជាធម្មតាតាម Bot API លើ HTTPS (បន្ទាត់ជាប់) ហើយបើចង់ ក៏អាចភ្ជាប់តាម MTProto ដូចកម្មវិធីដែរ (បន្ទាត់ដាច់ៗពណ៌ខៀវ)។ មិនថាផ្លូវណាទេ វាជាគណនីបូតតែមួយ និងប្រអប់សារតែមួយ។
- បន្ទាត់ដាច់ៗពណ៌ក្រហម គឺជាព្រួញតែមួយគត់ដែលទៅទិសបញ្ច្រាស៖ ពេលបូតកំណត់ webhook ម៉ាស៊ីនមេនឹងផ្ញើ update ថ្មីៗទៅអាសយដ្ឋាន HTTPS របស់កម្មវិធីបូត។ ព្រួញផ្សេងទៀតទាំងអស់ ជាសំណើដែលចូលពីខាងក្រៅមកម៉ាស៊ីនមេ។
- កន្លែងកត់ត្រាមានតែមួយ៖ រាល់ការផ្លាស់ប្តូរឆ្លងកាត់សេវា ហើយត្រូវបានកត់ទុកក្នុងឃ្លាំងព្រឹត្តិការណ៍ (event store) នៃ PostgreSQL មានតែរូបថតដើមទេដែលទុកជាឯកសារ។ ដោយសារសារដែលផ្ញើពីកម្មវិធី និងសារដែលបូតផ្ញើ ឆ្លងកាត់ផ្លូវតែមួយ ការជូនដំណឹងភ្លាមៗ (push) បញ្ជីការសន្ទនា និងការស្តារឡើងវិញពេលភ្ជាប់ម្តងទៀត អនុវត្តដូចគ្នាចំពោះទាំងអស់។
អ្វីដែលដំណើរការហើយ និងអ្វីដែលមិនទាន់
| មុខងារ | ស្ថានភាព | កំណត់ចំណាំ |
|---|---|---|
| ការចុះឈ្មោះ និងការចូលគណនី (លេខទូរស័ព្ទ + លេខកូដ) | បាន | ប្រតិបត្តិករជ្រើសវិធីបញ្ជូនលេខកូដ៖ SMS · អ៊ីមែល · អ្នកគ្រប់គ្រងបញ្ជូនផ្ទាល់ |
| ការសន្ទនា 1:1 ការទទួលភ្លាមៗ ឧបករណ៍ច្រើន | បាន | ឧបករណ៍ដែលបានបិទ នឹងតាមទាន់អ្វីដែលខកខាន ពេលបើកឡើងវិញ |
| ការកែ និងលុបសារ | បាន | បង្ហាញភ្លាមៗនៅលើអេក្រង់របស់ភាគីម្ខាងទៀតផងដែរ |
| ក្រុមមូលដ្ឋាន (បង្កើត · បន្ថែមសមាជិក · ដកសមាជិកចេញ · ឈ្មោះ) | បាន | បន្ថែមសមាជិកដោយផ្ទាល់ពីព័ត៌មានក្រុម |
| ការផ្ញើរូបថត រូបប្រវត្តិរូប | បាន | រក្សាទុកតែទំហំដើមមួយប៉ុណ្ណោះ |
| បូត — @BotFather, HTTP Bot API, webhook, បូត MTProto | បាន | ប៊ូតុង · callback · ម៉ឺនុយពាក្យបញ្ជា · រូបថត · ក្រុម |
| ទំព័រគ្រប់គ្រង ការកំណត់ប្រតិបត្តិការ | បាន | បើកតែនៅ 127.0.0.1 របស់ម៉ាស៊ីនមេប៉ុណ្ណោះ |
| គេហទំព័រ 10 ភាសា ទំព័រតំណឈ្មោះអ្នកប្រើ និងតំណអញ្ជើញ | បាន | ឯកសារអ្នកអភិវឌ្ឍន៍ក៏មាន 10 ភាសាដែរ |
| ឆានែល supergroup | មិនទាន់ | ប្រហែលជាមិនបង្ហាញត្រឹមត្រូវក្នុងកម្មវិធី |
| ឯកសារ វីដេអូ ឯកសារសំឡេង អាល់ប៊ុម | មិនទាន់ | បើផ្ញើ នឹងត្រូវបដិសេធដោយ MEDIA_INVALID |
អត្ថបទមានទម្រង់ (ដិត ទ្រេត) parse_mode របស់បូត | មិនទាន់ | ផ្ញើជាអក្សរដដែល។ ពាក្យបញ្ជា ការលើកឈ្មោះ (mention) តំណ និង hashtag បង្ហាញដោយស្វ័យប្រវត្តិ |
| ការហៅជាសំឡេង និងវីដេអូ ការសន្ទនាសម្ងាត់ | មិនទាន់ | |
| ការផ្ទៀងផ្ទាត់ 2 ជំហាន (ពាក្យសម្ងាត់ cloud) | មិនទាន់ | ទោះព្យាយាមកំណត់ ក៏ត្រូវបដិសេធ |
| កម្មវិធីទូរស័ព្ទ ការជូនដំណឹង push | មិនទាន់ | បច្ចុប្បន្នមានតែកម្មវិធីកុំព្យូទ័រ macOS |
| ការចូលក្រុមតាមតំណអញ្ជើញ | មិនទាន់ | អាចបង្កើតតំណបាន ប៉ុន្តែចុចហើយក៏មិនក្លាយជាសមាជិកដែរ |
របៀប inline (@bot ពាក្យស្វែងរក) ការទូទាត់ ហ្គេម | មិនទាន់ |
ទំនាក់ទំនងជាមួយ Telegram
Pabal ជាម៉ាស៊ីនមេដាច់ដោយឡែក ដែលអនុវត្តតាមពិធីការសាធារណៈរបស់ Telegram។ វាមិនមានទំនាក់ទំនងជាមួយក្រុមហ៊ុន Telegram ហើយក៏មិនភ្ជាប់ទៅម៉ាស៊ីនមេរបស់ Telegram ដែរ។
- អ្វីដែលត្រូវគ្នា៖ MTProto 2.0 (ការដឹកជញ្ជូន 4 ប្រភេទ handshake ការភ្ជាប់សោបណ្តោះអាសន្ន) ទម្រង់សំណើ និងការឆ្លើយតបនៃ layer 216 ទម្រង់អាសយដ្ឋាន សំណើ ការឆ្លើយតប និងកំហុសរបស់ HTTP Bot API។ យើងបានផ្ទៀងផ្ទាត់ដោយភ្ជាប់ Telegram Desktop 6.2.6 ផ្លូវការ ដោយមិនកែប្រែអ្វីឡើយ (គ្រាន់តែប្តូរអាសយដ្ឋានម៉ាស៊ីនមេ និងសោសាធារណៈ)។
- អ្វីដែលខុសគ្នា៖ គណនី និងទិន្នន័យ ដាច់ដោយឡែកតាមម៉ាស៊ីនមេនីមួយៗ។ ID អ្នកប្រើ ID សារ និង ID ឯកសារ មានន័យតែនៅក្នុងម៉ាស៊ីនមេនេះប៉ុណ្ណោះ។ តូខឹនបូតដែលធ្លាប់ប្រើនៅ Telegram មិនអាចប្រើបានទេ ត្រូវទទួលថ្មីពី @BotFather របស់ Pabal។
ទម្រង់តំណ
កម្មវិធី និងម៉ាស៊ីនមេបង្កើតតំណដោយប្រើ https://pabal.me/។ បើបើកក្នុងកម្មវិធីរុករក នឹងឃើញទំព័រតូចមួយសម្រាប់បើកកម្មវិធី។
| តំណ | អត្ថន័យ | អាសយដ្ឋានដែលបើកក្នុងកម្មវិធី |
|---|---|---|
pabal.me/<ឈ្មោះអ្នកប្រើ> | បើកការសន្ទនាជាមួយមនុស្ស ឬបូត | tg://resolve?domain=<ឈ្មោះអ្នកប្រើ> |
pabal.me/+<លេខកូដអញ្ជើញ> | តំណអញ្ជើញចូលក្រុម (កម្មវិធីបើក ប៉ុន្តែការចូលតាមតំណមិនទាន់ដំណើរការ) | tg://join?invite=<លេខកូដអញ្ជើញ> |
pabal.me/joinchat/<លេខកូដអញ្ជើញ> | តំណអញ្ជើញទម្រង់ចាស់ (អត្ថន័យដូចគ្នា) | tg://join?invite=<លេខកូដអញ្ជើញ> |
ឈ្មោះអ្នកប្រើមាន 5 ដល់ 32 តួ ដែលជាអក្សរឡាតាំង លេខ និងសញ្ញាគូសក្រោម ហើយត្រូវចាប់ផ្តើមដោយអក្សរឡាតាំង (ឈ្មោះបូតបញ្ចប់ដោយ bot)។ ឈ្មោះដែលដូចនឹងផ្លូវ (path) ដែលគេហទំព័រប្រើ ដូចជា docs, admin, health មិនអាចបើកជាតំណបានទេ។
គំរូសុវត្ថិភាព
- កម្មវិធី ↔ ម៉ាស៊ីនមេ៖ ត្រូវបានអ៊ិនគ្រីបដោយ MTProto 2.0។ កម្មវិធីត្រូវបាន build ដោយបង្កប់សោសាធារណៈ RSA របស់ម៉ាស៊ីនមេក្នុងខ្លួន ដូច្នេះម៉ាស៊ីនមេផ្សេងមិនអាចក្លែងខ្លួនជាម៉ាស៊ីនមេ Pabal បានទេ។ ការសន្ទនាដូចគ្នានឹង "ការសន្ទនា cloud" របស់ Telegram ដូច្នេះម៉ាស៊ីនមេអាចអានខ្លឹមសារបាន (មិនមែនការអ៊ិនគ្រីបពីចុងដល់ចុងទេ)។ នេះជាមូលហេតុដែលម៉ាស៊ីនមេត្រូវតែដំណើរការដោយមនុស្សដែលអាចទុកចិត្តបាន។
- បូត ↔ ម៉ាស៊ីនមេ៖ Bot API បើកចំហតាម HTTPS តែប៉ុណ្ណោះ។ តូខឹនបូតគឺជាពាក្យសម្ងាត់របស់បូត — បើវាលេចធ្លាយ សូមប្តូរវាដោយ
/revokeនៅ @BotFather។ តូខឹនចាស់ និងការតភ្ជាប់ដែលកំពុងភ្ជាប់ដោយតូខឹននោះ នឹងត្រូវផ្តាច់ភ្លាមៗ។ - ម៉ាស៊ីនមេ → webhook៖ ម៉ាស៊ីនមេផ្ញើសំណើតែទៅ webhook ដែលជា HTTPS និងមានអាសយដ្ឋានសាធារណៈប៉ុណ្ណោះ។ អាសយដ្ឋានខាងក្នុង ដូចជាបណ្តាញឯកជន loopback ឬ metadata របស់ cloud ត្រូវបានបដិសេធ។ បូតអាចប្រើ
secret_tokenដើម្បីពិនិត្យថាសំណើពិតជាមកពីម៉ាស៊ីនមេ Pabal មែន។ - ការគ្រប់គ្រង៖ ទំព័រគ្រប់គ្រងបើកតែនៅលើម៉ាស៊ីនមេខ្លួនឯង (127.0.0.1) ហើយត្រូវមានតូខឹនទើបអាចមើលទិន្នន័យបាន។ ប្រតិបត្តិករចូលតាម SSH tunnel។
- ការរក្សាទុក៖ ដោយសារម៉ាស៊ីនមេត្រូវប្រើសោផ្ទៀងផ្ទាត់ (auth key) ដើម្បីឌិគ្រីប សោទាំងនោះត្រូវបានរក្សាទុកក្នុងមូលដ្ឋានទិន្នន័យដូចដើម។ មូលដ្ឋានទិន្នន័យ និងការបម្រុងទុក ត្រូវការពារឲ្យបានដូចសោឯកជន RSA របស់ម៉ាស៊ីនមេដែរ។
វាក្យសព្ទ
| ពាក្យ | អត្ថន័យ |
|---|---|
| MTProto | ពិធីការអ៊ិនគ្រីបរវាងកម្មវិធី និងម៉ាស៊ីនមេ ដែល Telegram បានបង្កើត។ Pabal ប្រើកំណែ 2.0។ |
| Layer (ស្រទាប់) | កំណែនៃទម្រង់សំណើ និងការឆ្លើយតប ដែលឆ្លងកាត់លើ MTProto។ Pabal ប្រើ 216។ |
| សោផ្ទៀងផ្ទាត់ (auth key) | អាថ៌កំបាំងទំហំ 2048 ប៊ីត ដែលកម្មវិធីបង្កើតជាមួយម៉ាស៊ីនមេ ពេលភ្ជាប់ជាលើកដំបូង។ ការចូលគណនីត្រូវបានភ្ជាប់ទៅនឹងសោនេះ។ |
| DC | លេខមជ្ឈមណ្ឌលទិន្នន័យរបស់ Telegram។ នៅ Pabal ម៉ាស៊ីនមេមួយគ្រឿងទទួលបន្ទុក DC 1 ដល់ 5 ទាំងអស់។ |
| Update, pts | ការផ្លាស់ប្តូរ ដូចជាសារថ្មី ការកែ និងការលុប។ pts ជាលេខរៀងនៃការផ្លាស់ប្តូររបស់អ្នកប្រើម្នាក់ៗ ដែលជួយឲ្យឧបករណ៍ដែលធ្លាប់ដាច់ការតភ្ជាប់ ដឹងថាខ្លួនបានខកខានអ្វីខ្លះ។ |
| Peer | ភាគីសន្ទនា — មនុស្ស បូត ក្រុម។ |
| តូខឹនបូត | ខ្សែអក្សរក្នុងទម្រង់ <ID បូត>:<អាថ៌កំបាំង>។ ដាក់ក្នុងអាសយដ្ឋាន Bot API ដើម្បីបញ្ជាក់អត្តសញ្ញាណបូត។ |
| Webhook | វិធីដែលម៉ាស៊ីនមេផ្ញើ update ថ្មីៗទៅអាសយដ្ឋាន HTTPS របស់បូត ជំនួសឲ្យបូតមកទាញយកដោយខ្លួនឯង។ |