GetTGAPI 阅读提示
本页介绍 Python 与 Java 的 TDLib 接入方法,涵盖动态库准备、JNI/JSON 构建和示例运行。命令里的 <path to TDLib sources>、<full path to TDLib sources> 和 <VCPKG_DIR> 是原文占位符,执行前要替换为自己的真实路径。
Java 文档保留上游的 JDK >= 1.6 说明,这不是建议你在生产中使用过期 JDK;请结合所选 TDLib 版本的构建生成器和当前受支持的 JDK 验证。动态库架构、JVM 架构及依赖库必须匹配。
拿到 API ID 与 API Hash 后,应在自己应用的配置中填写,不能用 GetTGAPI 授权码替代它们。应用凭证与用户会话的区别见 凭证说明,申请协助见 gettgapi.com。
TDLib Python 示例
运行此示例前,需要先构建 TDLib,并把构建好的 tdjson 共享库复制到该示例目录。
然后可以运行示例:
python tdjson_example.py
所有可用类和方法的说明见 td_json_client 和 td_api 文档。
TDLib Java 示例
运行此示例需要安装 JDK >= 1.6。生成 Javadoc 文档还需要 PHP。
对应操作系统的完整构建说明见 Java 构建说明生成器。
通常构建过程如下。
首先启用 JNI 绑定预编译 TDLib,并安装到本地子目录 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,为 32 位或 64 位 Java 编译 TDLib,还需要分别向 CMake 添加 -A Win32 或 -A x64 选项。
在 Windows 上,添加参数 -DCMAKE_TOOLCHAIN_FILE=<VCPKG_DIR>/scripts/buildsystems/vcpkg.cmake 以使用 vcpkg 工具链文件。
接着编译示例源码:
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
如果希望构建 JSON 接口的 JsonClient.java 封装,而非原生 JNI 接口,在构建示例时向 CMake 添加 -DTD_JSON_JAVA=ON 选项。
编译得到的 TDLib 共享库和 Java 示例会放在 bin/ 中;Javadoc 文档会放在 docs/ 中。
然后运行 Java 示例:
cd <path to TDLib sources>/example/java/bin
java '-Djava.library.path=.' org/drinkless/tdlib/example/Example
如果使用 -DTD_JSON_JAVA=ON 构建了 JSON 接口示例,则改用命令 java '-Djava.library.path=.' org/drinkless/tdlib/example/JsonExample。
如果 CMake 提示“Could NOT find JNI ...”,需要向 CMake 指定已安装 JDK 的路径,例如 -DJAVA_HOME=/usr/lib/jvm/java-8-oracle/。
如果遇到 java.lang.UnsatisfiedLinkError,并提示“Can't find dependent libraries”,还可能需要把依赖的 OpenSSL 和 zlib 共享库复制到 bin/。
务必确保示例编译所用架构与你的 JVM 一致。