首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我怎么知道对话者已经看过电报了?

我怎么知道对话者已经看过电报了?
EN

Stack Overflow用户
提问于 2022-11-13 19:58:21
回答 2查看 89关注 0票数 1

我使用WTelgramClient提醒病人即将接受的医生预约。

我正在发送一个信息,我需要确保它是读的。

代码语言:javascript
运行
复制
using var client = new WTelegram.Client(Config);
var user = await client.LoginUserIfNeeded();
var contact = await client.Contacts_ImportContacts(new[] { new InputPhoneContact { phone = phoneNumber } });
object p = await client.SendMessageAsync(contact.users[contact.users.Keys.First()], patientMessage);

这似乎可以通过flag has_views来完成。我尝试了下面的代码,但我不能调用dialogs.messages[0].flag.has_views

代码语言:javascript
运行
复制
var dialogs = await client.Messages_GetAllDialogs();
Console.WriteLine(dialogs.messages[0]);
EN

回答 2

Stack Overflow用户

发布于 2022-11-13 20:40:14

首先,您应该存储用户信息和发送的消息信息,如下所示:

代码语言:javascript
运行
复制
var targetUser = contact.users.Values.First();
var msg = await client.SendMessageAsync(targetUser, text);

稍后,您可以检查匹配的Dialog.read_outbox_max_id是否指示您的消息已被读取,如下所示:

代码语言:javascript
运行
复制
var dialogs = await client.Messages_GetAllDialogs();
foreach (Dialog dialog in dialogs.dialogs)
    if (dialog.peer.ID == targetUser.id)
        if (dialog.read_outbox_max_id >= msg.id)
            Console.WriteLine("Sent message was read");

或者,如果您的程序在后台运行,它可以实时监视更新,等待与targetUser.id和max_id >= msg.id匹配的UpdateReadHistoryOutbox

票数 0
EN

Stack Overflow用户

发布于 2022-11-13 21:01:41

您可能应该为来自客户端的事件OnUpdate添加一个侦听器:

代码语言:javascript
运行
复制
client.OnUpdate += Client_OnUpdate

private static async Task Client_OnUpdate(IObject arg)
    {
        if (arg is not UpdatesBase updates) return;
        updates.CollectUsersChats(Users, Chats);
        foreach (var update in updates.UpdateList)
            switch (update)
            {
                case UpdateReadMessagesContents urmc: //get id of read messages: urmc.messages 
                default: Console.WriteLine(update.GetType().Name); break; // there are much more update types than the above example cases
            }
    }

并检查是否存在任何类型为:UpdateReadMessagesContents的事件,您可以从那里获取读取消息的ids。

我希望它能帮上忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74424288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档