我想使用PHP实现多个授权,以便与Telegram REST API进行交互.
我想解决什么任务?嗯,这很简单:几十个用户(他们都有像这里的卡玛(+ 10,-2,+ 1000等)和相关的群体分类:网站管理员和客户)在我的网站上有一个用户档案.在他们达到一定数量的carma之后,由于他们在他们的个人资料中被授权,他们将根据为他们自动生成的Telegram加入私人聊天.
经过一些研究,我发现它非常复杂,因为:
我看了一下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;
Run Code Online (Sandbox Code Playgroud)
它是什么?用哪种语言写的?
UPD:用TL(Type Language)编写: https: //core.telegram.org/mtproto/TL
我已经探索了几个客户端的源代码(Webogram,Telegram-cli(tg),tdesktop),我发现了几个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"
Run Code Online (Sandbox Code Playgroud)
我找到了几个可能合适的函数(./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, "", …Run Code Online (Sandbox Code Playgroud)