代码之家  ›  专栏  ›  技术社区  ›  dev-masih Ash Ghal

从bot向用户发送相同的图像以防止下载两次

  •  0
  • dev-masih Ash Ghal  · 技术社区  · 7 年前

    我正在使用 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,因此用户必须分别下载每个图像。

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

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

    这解决了问题,但留下了一个丑陋的 botname公司 “图像标题。

    那么,有没有其他方法来完成整个任务,使每条消息看起来像,但具有相同的messageId?有没有办法将第一条消息转发给同一个用户,但去掉标题?

    提前感谢

    1 回复  |  直到 7 年前
        1
  •  1
  •   Sean Wei    7 年前

    之后 send photo from file ,您将获得 file_id
    ( .result.photo[4].file_id : AgADBQADLagxGyRN4FQwyg5Z9HLVFVFp0zIABAHza6yG8gXJ86cCAAEC 在本例中)

    你可以 send with file ID 现在:)