如何使用電報API實現授權?我希望使用PHP實現多個授權,以便與Telegram RESTAPI進行交互。我想解決什么任務?嗯,很簡單:幾十個用戶(他們都有一個像這里一樣的Carma(+10,-2,+1000等等)與相關的組分類:網站主人和客戶)有一個用戶的個人資料在我的網站上。當他們達到一定數量的Carma,并由于他們在他們的個人資料授權,他們加入到私人聊天基礎上,為他們自動生成電報。經過一些研究,我發現這很復雜,因為:我從未體驗過硬件綁定的社交網絡的API實現。我看了看https://core.telegram.org/api/auth,但是如何使用PHP或任何其他語言實現這些函數(例如auth.sendCode),這是完全不明顯的。如果這些命令應該以JSON的形式發送到服務器,那么它看起來不像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我研究了幾個客戶端(Webogram、Telegram-cli(TG)、t桌面)的源代碼,并發現了https://core.telegram.org/mtproto不幸的是,他們都不支持多重授權,經過一點研究,我不知道在哪里挖掘更多的信息。而且,這些實現看起來笨重且復雜(例如,https://github.com/vysheng/tg): 在這里,我看到了一堆服務器(./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"我找到了幾個可能合適的函數(./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];等。對于多個用戶auth實現,應該將哪些文件傳輸到PHP?你能幫我知道從哪里開始,以及如何使它比現在更容易嗎?提前謝謝!
添加回答
舉報
0/150
提交
取消