使用BotFramework通过file_id向Telegram发送贴纸失败求助
解决Telegram Bot通过
file_id发送贴纸的问题 我懂你现在的困扰——想用file_id给Telegram发送贴纸,但写的代码没法正常工作,而且官方文档只提供了用url的示例,完全找不到file_id相关的参考对吧?
问题出在哪?
你之前的代码把sticker参数封装成了一个包含file_id、width、height的对象,但Telegram的sendSticker API其实要求sticker参数直接传入file_id字符串就行,不需要额外嵌套这些属性。而且宽高参数是Telegram会自动从贴纸文件里识别的,不需要手动指定。
修正后的代码
试试把代码改成这样:
activity.ChannelData = new { method = "sendSticker", parameters = new { sticker = "CAADAgADmwEAAoo0zQirH-KhlK1ZMwI" } }; await connector.Conversations.ReplyToActivityAsync(activity);
额外注意事项
- 确保你用的
file_id是当前bot自己接收过的贴纸的id:Telegram的file_id是每个bot专属的,不能直接用其他bot或者从别处复制的file_id,否则会返回无效错误。 - 如果还是失败,可以先通过Telegram的原生API直接调用
sendSticker测试这个file_id是否有效,排除id本身的问题。
内容的提问来源于stack exchange,提问作者Ильдар Мусалямов
相关产品推荐
相关产品推荐

