如何使用电报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
提交
取消