问题标签 [mtproto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5675 浏览

c# - 如何进行 Telegram MTProto 协议 api 调用?

例如调用/包装auth.sentCode方法(下面的链接):

https://core.telegram.org/method/auth.sendCode

我努力了:

我得到了这个异常(和内部异常)

底层连接已关闭:发送时发生意外错误。(身份验证失败,因为远程方已关闭传输流。)

0 投票
1 回答
1105 浏览

api - 如何在 Requests 中指定和实现 Telegram API 方法?

我正在尝试简单地连接到 Telegram API 服务器并获得响应。我在 my.telegram.org 中创建了一个应用程序,现在我有我的 api_id、api_hash 以及 Telegram api MTproto 服务器的 IP 地址。入门文档说我们必须首先使用auth.sendCode方法进行授权,以将代码发送到 api 用户的手机。

所以我尝试了这个 python 脚本来使用 auth.sendCode 方法:

当我打印 res 时,它会显示 Response [404]。根据文档,这意味着尝试调用不存在的对象,例如方法。

我确定问题出在我在发布请求中的数据字段上。我为调用 auth.sendCode 方法创建的字符串是错误的,因此服务器无法识别我要访问的内容。

文档中有该方法的查询示例:

(auth.sendCode "79991234567" 1 32 "test-hash" "en")

请有人帮我更正那个数据字符串(根据这个例子)。如何在 Post Requests 中实现 API 方法?

0 投票
1 回答
1606 浏览

php - 如何在php中调用主要的电报api方法

我想使用主电报 apiphp代码登录和管理电报帐户。

我阅读了电报文件并阅读了所有最后的主题和相关问题,例如:

调用 Telegram API 创建 feedreader 机器人

通过基于 Web 的客户端访问 Telegram API

在 PHP 中使用电报 API

在 PHP 中使用电报 API

Telegram API 使用 php 或 javascript 发送消息?

和 .....

如果您的答案是“...使用 bot api”或“...使用电报 cli”,我应该说这不是我的问题的好答案!

我想以不同的用户帐户登录并管理它们。

很多

0 投票
2 回答
1159 浏览

c# - 将 TL 语言 (mtproto) 类型转换为 C#

我正在使用 tl 语言编译器来编译在 C#中的https://core.telegram.org/mtproto中描述的 Telegram Api TL 语言的架构

有一个编译器可以将 tl 语言编译为 C# 类https://github.com/everbytes/SharpTL.Compiler

但它可以在这一行编译新的电报模式:

并将其编译为错误的代码:

在 C# 代码中进行强制转换有什么解决方案吗?

我不知道 C# 中这个“标志:#”的类型是什么

https://core.telegram.org/mtproto/TL-formal中描述的这种类型“#”

将来,flags 字段中的第 3 位和第 4 位可能会在更改 reserved3 和 reserved4 字段的名称和类型后用于传输新字段

0 投票
1 回答
1579 浏览

c - C中的电报客户端

我正在研究 C 中的 Telegram 客户端,以便我可以为 Pebble 智能手表/s 编写客户端。我了解 Pebble 方面以及此处显示的所有 Telegram 方法,但我完全不知道如何用 C 语言发送这些方法。

我认为这与“TL 语言”和 MTProto 服务有关,但我认为这超出了我目前的理解范围。我也找到了这个代码集合,但同样不知道如何使用它https://github.com/vysheng/tgl/

编辑1:

在手机上运行带有 PebbleKitJS 部分的基于 C 的应用程序似乎是实现此目的的最佳途径。对使用 JS 实现 MTProto 有任何帮助吗?

0 投票
1 回答
817 浏览

tcp - 如何在 cmd 或 bash 中查询 Telegram API

开始使用 API 的第一步是这个。我有 MTProto 服务器 (149.154.167.40:443)、电话号码、api id、哈希...

我该怎么做?我该如何进行这样的查询?我太不明白了。

提前致谢

0 投票
0 回答
445 浏览

python - TelegramAPI MTProto checkPone 不响应

我试图用python实现电报api。

基本代码分叉形式https://github.com/datamachine/twx

我想添加 checkPhone 和 sendCode 功能,但服务器总是返回无法理解的结果。

这是我的代码

并且服务器总是响应如下,无论 auth_key_id 是什么,

我的代码有什么问题?

0 投票
1 回答
1298 浏览

android - 电报:从电报客户端获取文件ID

Telegram 机器人用于fileid下载文件。我如何fileid从 Telegram 客户端(我的非官方版本)获得这个?中的文件mtproto具有指示其地址的位置类。

文件位置参数

  • dc_id int 保存文件的数据中心编号
  • volume_id long 服务器卷
  • local_id int 文件 ID
  • 访问文件的秘密长校验和

问题是我不知道如何从课堂上生成fileid适合机器人的。File Location

更新 1:

我试图做一些逆向工程。所以,我发现File Locationclass 和FileId.

这是我的File Location 示例地址。

  • id: 0 // 此字段仅适用于秘密聊天
  • access_hash: 0 // 此字段仅适用于秘密聊天
  • volume_id: 429640340( 199BCA94 HEX)
  • secret: -3528741004939935589( CF0764C08833409B HEX) // 根据 TG 文档,它应该是文件 CheckSum
  • local_id: 6005( 1775 HEX)

这是我根据我从我的 Bot 中检索FileID到的前一课:FileLocation

  • 文件编号:AgADBAADL6gxG06L8w0nhNO87UW3iZTKmxkABJtAM4jAZAfPdRcAAgI

很明显,FileID值是Base64格式。所以我已经解码了它:

  • 十六进制值: 0200030400032FA8311B4E8BF30D2784D3BCED45B78994CA9B1900049B403388C06407CF7517000202

现在我们可以看到FileLocation这个十六进制值中的值:

  • 未知:0200030400032FA8311B4E8BF30D2784D3BCED45B789
  • 卷号:94CA9B19 HEX
  • 未知:0004
  • 秘密:9B403388C06407CF HEX
  • local_id:7517 Hex
  • 未知:000202

注意:这些值以Big-Endian格式存储。

现在我们需要解码Unknown值。我感谢任何有助于解码这些值的努力。

0 投票
1 回答
741 浏览

java - 在电报api java中连接到dc

我尝试使用java telegram api连接到电报。在这段代码上它抛出异常

这是我在控制台中看到的:

我不知道我做错了什么。

0 投票
1 回答
1564 浏览

telegram - 在 Telegram 中解析解密后的 encrypted_data

我正在尝试通过 Telegram 中的秘密聊天(〜类似于自己的客户端)实现接收/发送消息,但在解释解密数据时遇到了一些问题。我已阅读架构,但无法将其与我的数据匹配。

更具体地说:我收到了一条带有“Test12”字样的消息(从官方客户端发送),解码结果(十六进制)是:

3C0000008917E31B0FF1C770B657C36AF705BDACA4BE2C0B2E0000000100000062000000DE91B0360000000038507C7CD5FA6F7C00 00000006 546573743132 00

我们可以在这里找到从 57 字节(粗体)和(如果我没记错的话)长度(斜体)开始的整个消息。但是我怎样才能匹配其他字节呢?在模式中说消息应该从 8 (salt) + 8 (session_id) + 8 (message_id) + 4 (seq_no) + 4 (message_data_length) = 32 字节开始,而不是从 57 字节开始。

此外,当我尝试发送更长的消息(超过〜256字节)时,“消息文本”从60字节开始,长度也编码有点奇怪:1024字节消息的FE000400和512字节的FE000200(什么FE 是什么意思?)。

那么,任何人都可以给我一个模式或我做错了什么的线索吗?