电报协议
MTProto 嵌入到传输协议(TCP、HTTP、...)中,所以使用 Postman 并非不可能,但我真的很难做到(所以它不是最佳选择)。
认为您的 http 调用必须实现 MTProto 2.0,因此您的 http 消息必须具有以下结构/格式:structure
见schematic presentation of messages
只有非常有限数量的特殊类型的消息可以作为纯文本传输。
电报机器人
关于 TelegramBots 是一个帮助使用 Telegram Bots Api 构建 Bot 的库。
它支持两种技术:长轮询和Webhook。
项目有很好的教程可以试试:quickstart
另外,如果您是 Spring Boot 用户,它也有一个 Spring Boot starter (spring boot starter.
如何实现自己的认证客户端?
如果你想学习如何与电报api交互进行身份验证,你需要阅读这个:auth section
之后,您可以了解如何与 Telegram 交互以进行身份验证...我建议您阅读真正的应用程序如何使用 Telegram API。
查看此示例实现中 Telegram Api 的所有用法(对包类的引用:org.telegram.api.requests.TLRequestAuth*):
ActivationController impl
如上例所示,通常电报客户端使用 TDLib。
Telegram 基本上提供了两个 API:
Telegram API 和 TDLib
此 API 允许您构建自己的自定义 Telegram 客户端。它
对所有希望创建 Telegram 的开发人员 100% 开放
我们平台上的应用程序。随意学习开源代码
现有电报应用程序的示例,以了解事物的工作原理
这里。不要忘记在我们的系统中注册您的应用程序。
机器人 API
此 API 允许您将机器人连接到我们的系统。电报机器人是
不需要额外电话号码来设置的特殊帐户
向上。这些帐户用作在某处运行的代码的接口
你的服务器。
如果您想创建或使用 Telegram 作为服务来发送和接收消息并与服务器交互(不需要电话号码)... Bot API 应该是您的选择。
如果您想创建自己的定制 Telegram 应用(您的用户将需要一个电话号码来注册,就像在手机中使用 Telegram 一样)... Telegram API/TDLib 应该是您的选择。
TDLib 是:
一种用于第三方开发者的工具,可以轻松快速地构建,
安全且功能丰富的 Telegram 应用程序。 TDLib 负责所有网络
实现细节、加密和本地数据存储,让您
可以花更多时间设计,响应式界面美观
动画。
TDLib 支持所有 Telegram 功能并使开发 Telegram
应用程序在任何平台上都轻而易举。它可以在安卓、iOS、
Windows、macOS、Linux 和几乎任何其他系统。图书馆是
开源,几乎与任何编程语言兼容。
所以你不需要关心像 MTProtocol 协议、网络、加密等底层细节。你只需要在这种情况下使用 TDLib。
我发送给您的示例类是适用于 Android 的 Telegram 应用程序 (telegram app)。它使用 TDLib。
如果您想学习如何创建自己的 TDLib... 源代码在这里:
tdlib source
它是用 C 语言开发的,可以与 Java、.NET 等一起使用。
基本上,它通过传输协议(http、tcp 或 udp)发送消息。例如。对于 http 使用 post 请求来提交具有上述 MTProto 格式的消息。消息用于编码。
关于 MTProto 支持的传输如何工作的文本:supported transports
其他参考资料:
电报 API:Telegram APIs
TDLib:TDLib
TDLib 在 Java 中的使用示例
Java 示例代码库:TDLib example client
第一次结帐 TDLib repo TDLib repo
正如我所说,TDLib 是用 C 语言开发的,因此您需要使用 JNI(Java Native Interface)与之交互。因此,您需要编译 TDLib(使用 cmake)。
按照示例说明 (readme.md) 在您的平台 (readme) 中构建/预构建 TDLib。
TDLib 应预先构建以与 Java 一起使用并安装到本地
子目录td/如下:
cd <path to TDLib sources>
mkdir jnibuild
cd jnibuild
cmake -DCMAKE_BUILD_TYPE=Release -DTD_ENABLE_JNI=ON -DCMAKE_INSTALL_PREFIX:PATH=../example/java/td ..
cmake --build . --target install
如果您想在 Windows 上使用 MSVC 为 64 位 Java 编译 TDLib,
您还需要在 CMake 中添加 -A x64 选项。
在 Windows 中,通过添加参数来使用 Vcpkg 工具链文件
-DCMAKE_TOOLCHAIN_FILE=/scripts/buildsystems/vcpkg.cmake
然后你可以构建这个例子:
cd <path to TDLib sources>/example/java
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DTd_DIR=<full path to TDLib sources>/example/java/td/lib/cmake/Td -DCMAKE_INSTALL_PREFIX:PATH=.. ..
cmake --build . --target install
编译后的 TDLib 共享库和 Java 示例将是
放置在 bin/ 和 docs/ 中的 Javadoc 文档中。
- 然后就可以运行 Java 示例了
cd <path to TDLib sources>/example/java/bin
java '-Djava.library.path=.' org/drinkless/tdlib/example/Example
如果您从 CMake 收到“Could NOT find JNI ...”错误,您需要
指定已安装 JDK 的 CMake 路径,例如,
“-DJAVA_HOME=/usr/lib/jvm/java-8-oracle/”。
如果您收到 java.lang.UnsatisfiedLinkError 并显示“找不到依赖项
库”,您可能还需要复制一些依赖共享的 OpenSSL
和 zlib 库到bin/。
如果您将示例编译为 32 位版本,您可能需要
给 Java 提供 -d32 参数。
如果您想使用 IntelliJ 之类的 IDE 打开或在您的项目中导入此示例,请查看此票证:how to use IntelliJ with TDLib
尝试运行示例!非常简单,它只有三个 Java 类(Example、Client 和 Log)。
客户端:使用“本地”方法与 TDLib 交互。
示例:使用客户端的应用程序。
例如查看如何发送授权请求:
auth request