如何使用電報(bào)API實(shí)現(xiàn)授權(quán)?我希望使用PHP實(shí)現(xiàn)多個(gè)授權(quán),以便與Telegram RESTAPI進(jìn)行交互。我想解決什么任務(wù)?嗯,很簡單:幾十個(gè)用戶(他們都有一個(gè)像這里一樣的Carma(+10,-2,+1000等等)與相關(guān)的組分類:網(wǎng)站主人和客戶)有一個(gè)用戶的個(gè)人資料在我的網(wǎng)站上。當(dāng)他們達(dá)到一定數(shù)量的Carma,并由于他們在他們的個(gè)人資料授權(quán),他們加入到私人聊天基礎(chǔ)上,為他們自動(dòng)生成電報(bào)。經(jīng)過一些研究,我發(fā)現(xiàn)這很復(fù)雜,因?yàn)椋何覐奈大w驗(yàn)過硬件綁定的社交網(wǎng)絡(luò)的API實(shí)現(xiàn)。我看了看https://core.telegram.org/api/auth,但是如何使用PHP或任何其他語言實(shí)現(xiàn)這些函數(shù)(例如auth.sendCode),這是完全不明顯的。如果這些命令應(yīng)該以JSON的形式發(fā)送到服務(wù)器,那么它看起來不像JSON: auth.sentCode#efed51d9 phone_registered:Bool phone_code_hash:string send_call_timeout:int is_password:Bool = auth.SentCode;那是什么?它是用哪種語言寫的?UPD:它是用TL(類型語言)寫的:https://core.telegram.org/mtproto/TL我研究了幾個(gè)客戶端(Webogram、Telegram-cli(TG)、t桌面)的源代碼,并發(fā)現(xiàn)了https://core.telegram.org/mtproto不幸的是,他們都不支持多重授權(quán),經(jīng)過一點(diǎn)研究,我不知道在哪里挖掘更多的信息。而且,這些實(shí)現(xiàn)看起來笨重且復(fù)雜(例如,https://github.com/vysheng/tg): 在這里,我看到了一堆服務(wù)器(./tg/tgl/tgl.h):#define TG_SERVER_1 "149.154.175.50"#define TG_SERVER_2 "149.154.167.51"#define TG_SERVER_3 "149.154.175.100"
#define TG_SERVER_4 "149.154.167.91"#define TG_SERVER_5 "149.154.171.5"我找到了幾個(gè)可能合適的函數(shù)(./TG/TGL/Queries.c):void empty_auth_file (void) {
if (TLS->test_mode) {
bl_do_dc_option (TLS, 1, "", 0, TG_SERVER_TEST_1, strlen (TG_SERVER_TEST_1), 443);
bl_do_dc_option (TLS, 2, "", 0, TG_SERVER_TEST_2, strlen (TG_SERVER_TEST_2), 443);
bl_do_dc_option (TLS, 3, "", 0, TG_SERVER_TEST_3, strlen (TG_SERVER_TEST_3), 443);
bl_do_set_working_dc (TLS, TG_SERVER_TEST_DEFAULT);
} else {
bl_do_dc_option (TLS, 1, "", 0, TG_SERVER_1, strlen (TG_SERVER_1), 443);
bl_do_dc_option (TLS, 2, "", 0, TG_SERVER_2, strlen (TG_SERVER_2), 443);
bl_do_dc_option (TLS, 3, "", 0, TG_SERVER_3, strlen (TG_SERVER_3), 443);
bl_do_dc_option (TLS, 4, "", 0, TG_SERVER_4, strlen (TG_SERVER_4), 443);
bl_do_dc_option (TLS, 5, "", 0, TG_SERVER_5, strlen (TG_SERVER_5), 443);
bl_do_set_working_dc (TLS, TG_SERVER_DEFAULT);
}}void bl_do_dc_option (struct tgl_state *TLS, int id, const char *name, int l1, const char *ip, int l2, int port) {
struct tgl_dc *DC = TLS->DC_list[id];等。對于多個(gè)用戶auth實(shí)現(xiàn),應(yīng)該將哪些文件傳輸?shù)絇HP?你能幫我知道從哪里開始,以及如何使它比現(xiàn)在更容易嗎?提前謝謝!
添加回答
舉報(bào)
0/150
提交
取消