我正在尝试删除电报 api_key 和 api_hash,或者至少重置 api_hash。
但是我在此页面中找不到执行此操作的选项https://my.telegram.org/apps。
有谁知道如何删除或重置电报api应用程序的api_hash?
使用官方 TDLib C++ 示例,我尝试发送带有格式化降价文本的消息。
这是我的代码:
auto send_message = td_api::make_object<td_api::sendMessage>();
send_message->chat_id_ = -1001424068198;
auto message_content = td_api::make_object<td_api::inputMessageText>();
std::string text = "Hello! **how are u?**";
message_content->text_ = td_api::make_object<td_api::formattedText>();
message_content->text_->text_ = std::move(text);
send_message->input_message_content_ = std::move(message_content);
send_query(std::move(send_message), {});
Run Code Online (Sandbox Code Playgroud)
我希望看到“你好!你好吗? ”但消息是写在代码中的,没有应用降价格式。
我在谷歌上花了几个小时试图弄清楚如何强制 TDLib 解析它。
更新:解决了!
感谢阿泽姆的帮助!
使用此示例,以下代码应发送解析的消息(在 VS 2019 中测试)
void sendMsg(INT64 chatID, INT64 ReplyTo, const char* textMsg) {
const std::string text = textMsg;
auto textParseMarkdown = td_api::make_object<td_api::textParseModeMarkdown>(2);
auto parseTextEntities = td_api::make_object<td_api::parseTextEntities>(text, std::move(textParseMarkdown));
td::Client::Request parseRequest{ 123, std::move(parseTextEntities) };
auto parseResponse = td::Client::execute(std::move(parseRequest));
if (parseResponse.object->get_id() …Run Code Online (Sandbox Code Playgroud) 有谁知道一种持久用户会话的方法,例如保存会话并将其加载回应用程序,而无需用户输入电话号码并再次完成登录过程?
我遇到的问题是,每次在 Flutter 中热重载时,每当我更改代码时,我都需要再次执行该登录过程。有一个名为 Telethon 的 Python 库可以让你保存会话,但我想知道你是否可以使用 TDLib Dart 库来做到这一点。
我试图阅读源代码以找出是否有任何我可以使用的东西,但我找不到任何东西。如何保留用户的会话?
使用的库: https: //github.com/i-Naji/tdlib
我正在使用 Java 中的官方 Telegram Api (TDLib) 来请求有关群组所有成员的信息。使用它们的 ID,我向服务器发送异步请求,并User在 ResultHandler 内接收每个请求的对象,如下所示:
private static ArrayList<TdApi.User> chatUsers= new ArrayList<>();
private static void addUsers(){
for (int i = 0; i < userIDs.length; i++){
client.send(new TdApi.GetUser(userIDs[i]), new Client.ResultHandler() {
@Override
public void onResult(TdApi.Object object) {
TdApi.User user = (TdApi.User)object;
chatUsers.add(user);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
由于我对 Java 中的异步请求还很陌生,所以我想知道以下内容:
调用此方法并在继续之前等待收到的所有结果的适当方法是什么?
一般来说,当连续调用多个请求并在继续下一个请求之前等待每个结果时,除了将请求嵌套在彼此内部以在 Java 中同步之外,通常的方法是什么?我想避免这样的事情:
private static void getSupergroupId(int chatId){
//first step
client.send(new TdApi.GetChat(chatId), new Client.ResultHandler() {
@Override
public void onResult(TdApi.Object object) {
supergroupId = ((TdApi.ChatTypeSupergroup)((TdApi.Chat)object).type).supergroupId;
//second …Run Code Online (Sandbox Code Playgroud)我正在使用TDLib在 C# 中实现我的自定义 Telegram 客户端。初始化库时,我必须设置电报缓存文件和本地数据库的文件夹。每当我使用 下载照片时TdApi.DownloadFile,它都会保存在该文件夹中,大概是为了缓存。
是否可以禁用此功能,并且仅在内存中接收文件,作为 aStream或 a byte[]?
我了解缓存的好处,但出于我的应用程序特定的安全(和存储空间)原因,我想完全避免文件系统中的任何缓存。我愿意牺牲性能和加载速度。
我能想到两种可能的解决方案。我可以编写在应用程序关闭和启动时自动清除下载缓存文件夹的代码,或者我可以以某种方式实现官方桌面客户端的功能,并以加密格式存储缓存文件。第一个解决方案在安全性方面不是很好,我不知道如何实现第二个解决方案。所以最好禁用缓存。
这可能吗?如果可能的话,如何实现?