从机器人向用户发送相同的图像,以防止下载两次

时间:2018-03-04 14:03:12

标签: c# messaging telegram-bot

我使用Telegram.Bot库创建一个带有c#的电报机器人,但我的问题更多是关于特定库的电报机器人api,所以任何使用电报机器人api的人都可以回答我的问题。

问题是,如果我以正常方式发送,我想多次向用户发送图像:

//Code Used in This Specific library to normally send a message with image attached to it
InputOnlineFile imageFile = new InputOnlineFile(new MemoryStream(File.ReadAllBytes("filePath")));
botClient.SendPhotoAsync(ChatId, imageFile, caption);  

这会导致每个包含图像的邮件都有一个单独的messageId,因此用户必须单独下载每个图像。

发送相同消息的另一种方式是发送一条消息,如上所述并存储它的messageId和其他消息,而不是发送新消息,只需将第一条消息转发给同一用户,如下所示:

//Code Used in This Specific library to forward a message
botClient.ForwardMessageAsync(ChatId, ChatId, firstMessage.messageId)  

这解决了这个问题,但留下了一个丑陋的" Forwarded From botname "图像的标题。

那么还有另一种方法可以完成整个事情,所以每条消息看起来都像,但是有相同的messageId吗?有没有办法将第一条消息转发给同一个用户,但摆脱了那个标题?

提前致谢

1 个答案:

答案 0 :(得分:1)

send photo from file之后,您将获得file_id.result.photo[4].file_id:此示例中为AgADBQADLagxGyRN4FQwyg5Z9HLVFVFp0zIABAHza6yG8gXJ86cCAAEC

你现在可以send with file ID:)