使用 Microsoft bot 框架下载文件(pdf/图像)

2024-04-10

我想下载文档/图像(文档/图像位于互联网上,我给出了它的路径)。但它不起作用……但是,如果我只是评论附件部分,我就能从 BOT 那里得到“嗨”。

让控制器像这样

  [BotAuthentication]
  public class MessagesController : ApiController
  {
    /// <summary>
    /// POST: api/Messages
    /// Receive a message from a user and reply to it
    /// </summary>
    public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
    {

               ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
               Activity reply = activity.CreateReply("Hi");
               activity.Attachments.Add(new Attachment()
                { 
                    ContentUrl =   "https://upload.wikimedia.org/wikipedia/en/a/a6/Bender_Rodriguez.png",
                    ContentType = "Image/png",
                    Name = "Bender_Rodriguez.png"
                });

                await connector.Conversations.ReplyToActivityAsync(reply);
    }

    }

在这行代码之后你的代码出错了

Activity reply = activity.CreateReply("Hi");

您正在将附件添加到activity对象而不是reply。你正在得到“Hi” 回复,因为您没有将附件添加到reply参考。

我已经修改了您的代码,它可以正常工作并在 Bot Framework Emulator 上成功显示图像。

Code

        public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
    {
        ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
        Activity reply = activity.CreateReply("Hi");
        reply.Recipient = activity.From;
        reply.Type = "message";
        reply.Attachments = new List<Attachment>();
        reply.Attachments.Add(new Attachment()
        {
            ContentUrl = "https://upload.wikimedia.org/wikipedia/en/a/a6/Bender_Rodriguez.png",
            ContentType = "image/png",
            Name = "Bender_Rodriguez.png"
        });

        await connector.Conversations.ReplyToActivityAsync(reply);
        //var reply = await connector.Conversations.SendToConversationAsync(replyToConversation);
        return new HttpResponseMessage(System.Net.HttpStatusCode.Accepted);
    }

-Kishore

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Microsoft bot 框架下载文件(pdf/图像) 的相关文章

  • 如何使用 C# 连接到 Asana Rest API?

    有谁有使用 C 连接到 Asana API 的代码片段吗 他们的网站上有一个 Hello World 应用程序 但不幸的是它是用 ruby 编写的 https asana com developers documentation examp
  • 为标签生成成员:我有什么理由应该这样做?

    我在这里读过另一篇文章 因此 如果可能的话 您不应该为标签生成成员 我想知道有什么潜力缺点到这会是 我说的好处是性能提高 对吗 还要别的吗 我有一个带有 100 个标签的 winform 应用程序 不产生成员有什么好处 还是只有在 Web
  • MongoDb 注册类映射

    我有以下代码 我希望 MiscellaneousData 覆盖抽象的 MiscellaneousDataBase 然而 IdMemberMap 总是出现空值 使用独立的 正常 类是可行的 if BsonClassMap IsClassMap
  • 如何将 Razor 视图转换为字符串?

    我想使用我的 Razor 视图作为某种发送电子邮件的模板 所以我想将我的模板 保存 在视图中 将其作为字符串读入控制器 进行一些必要的替换 然后发送它 我有有效的解决方案 我的模板作为 HTML 页面托管在某处 但我想将其放入我的应用程序中
  • 访问 XAML 中的静态字段

    如何在 xaml 中引用类的静态属性 换句话说 我想做这样的事情 Class BaseThingy public static readonly Style BaseStyle
  • 用 C# 编写插件或插件框架

    我正在用 C 编写一个 Addin 框架 我想知道如何使 Addin 可以卸载而无需重新启动应用程序 我听说过 AppDomains 但是它们是如何工作的呢 外接程序是否可以添加可扩展性类并通过接口在主应用程序域中调用 并且仍然可卸载并调用
  • 使用远程管理凭据将文件复制到远程计算机

    我正在使用 C 我需要能够将一组文件复制到大约 500 台不同的计算机上 我已成功地使用 LogonUser 方法来模拟具有复制文件所需权限的域帐户 文件的目标路径类似于 远程计算机 C SomeFolder 我的问题是 有没有办法做到这一
  • C#动态支持吗?

    看完之后这个帖子 https stackoverflow com questions 2674906 when should one use dynamic keyword in c sharp 4 0k和链接 我还有 2 个问题 问题 1
  • .NET 字符串.替换

    我很生气 通常 我喜欢像 C 中那样进行替换 但是是否有一种 C 风格的替换 它一次仅替换一个字母或我指定的 X 数量 不 BCL 中不存在仅替换字符的单个实例的 Replace 方法 两个主要的 Replace 方法将替换所有出现的情况
  • smtpclient“发送邮件失败”

    这是我的代码 for int i 0 i lt number i MailAddress to new MailAddress iMail to MailAddress from new MailAddress iMail from iMa
  • 如何将 .NET 控制台应用程序转换为 Winforms 或 WPF 应用程序

    我经常从一个简单的控制台应用程序开始尝试一个想法 然后创建一个新的基于 GUI 的项目并将代码复制进去 有更好的方法吗 我可以轻松转换现有的控制台应用程序吗 只需添加一个新的Winform 将以下代码添加到您的Main Applicatio
  • 如何从进程开始捕获所有应用程序/窗口消息? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我试图弄清楚如何捕获进程 窗口的所有窗口消息 从它在 c 中启动时开始 该过程不是我自己的 所以我需要使用某种钩子 我的目标是开始实时
  • 防止字符串中出现西里尔文/希腊文/中文 - C# 4.0

    我们有一个支持希腊语 西里尔语 中文字符的系统 使用 ASP NET C 4 0 但第三方系统似乎无法正常工作 为了避免为此第三方系统输入数据时出现问题 我想将文本字段限制为仅接受英语或重音字符 但返回其他字符的验证错误 我怎样才能做到这一
  • 在 C# 中在 Windows 标题栏区域中创建选项卡

    有人可以告诉我如何在 C Winforms 应用程序的标题栏区域中创建选项卡吗 我正在寻找类似于 Google Chrome 的外观 Chrome 中的每个选项卡都停靠在主应用程序窗口的标题栏中 尝试将表单的 FormBorderStyle
  • 如何将一个控件的属性绑定到另一个控件的属性?

    我希望当表单被禁用时 表单中的 保存 按钮消失 我这样做 this formStackPanel IsEnabled someValue if this formStackPanel IsEnabled this saveButton Vi
  • DLL 中的 GUID (.Net)

    我在这方面不是很有经验 所以我有几个问题 首先 所有 Net 创建的 DLL 是否都有自己的 GUID 如果没有 我的问题是如何获得一个并将其与 DLL 关联 那么问题是 我如何获得该 dll 的 GUID 即 给定 DLL 路径 c so
  • WebClient.DownloadDataAsync 冻结了我的 UI

    我在 Form 构造函数中的 InitializeComponent 之后有以下代码 using WebClient client new WebClient client DownloadDataCompleted new Downloa
  • 将日期时间转换为指定格式

    我有这个日期格式yy MM dd HH mm ss ex 12 02 21 10 56 09 问题是 当我尝试使用以下代码将其转换为不同格式时 CDate 12 02 21 10 56 09 ToString MMM dd yyyy HH
  • C# 中的 C/C++ 代码编译器

    在 C 中 我可以使用下面的代码编译 VB 和 C 代码 但无法编译 C C 代码 有什么办法可以做到这一点吗 C 编译器 public void Compile string ToCompile string Result null st
  • 使用 xslt 将 xml 转换为 xsl-fo 时动态创建超链接?

    我想使用 xsl 文件在 PDF 报告中创建标题 如果源文件包含超链接 则应将其呈现为超链接 否则呈现为纯文本 例如 我的 xml 如下所示 a href http google com target blank This is the h

随机推荐

  • 为什么scala人不喜欢注释?

    NET 中的属性是一个非常流行的功能 而Java在1 5之后添加了Annotation 注解随处可见 请参阅 Java EE 和 Spring 但很少有scala库使用注释 lift json 不要使用它 lift record 不要使用它
  • Python3:没有 gzip 或 zlib?

    该模块现在有其他名称吗 我似乎找不到任何信息表明该模块已被弃用或完全删除 这会让我更加困惑 有谁知道这去哪儿了 Python 3 1 2 r312 79147 May 20 2010 09 09 30 GCC 4 1 2 20080704
  • Ruby on Rails 最佳托管(截至 2012 年)[已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 FileHelpers 动态创建 CSV 文件

    FileHelpers 支持一项名为 运行时记录 的功能 当您直到运行时才知道布局时 该功能可让您将 CSV 文件读入数据表中 是否可以使用 FileHelpers 以相同的方式在运行时创建 CSV 文件 根据某些用户输入 必须创建的 CS
  • 结构体指针数组

    我试图了解我的代码是否正确 我需要声明一个指向结构的指针数组 创建一个新结构并分配值并打印它们 在我看来 我没有正确声明指针数组 我需要知道我做错了什么 谢谢 我收到此编译错误 错误 people 未声明 首次在此函数中使用 我尝试插入 s
  • 将小吃栏移动到底部栏上方

    我在新的底栏上遇到了一些问题 我无法强制将小吃栏移动到底部栏上方 这就是设计指南告诉我应该的方式https www google com design spec components bottom navigation html botto
  • 提高由整数商定义的变量的精度

    假设我有以下程序 program derp implicit none integer parameter ikind selected real kind 18 real kind ikind a 2 0 3 0 print a end
  • System.getproperty("spring.profiles.active") 在 JPA 实体监听器中总是获取 Null

    我正在尝试获取 Spring 活动配置文件JPA实体监听器使用System getproperty spring profiles active 但它总是返回空配置文件 但是我已经检查了服务器并且配置文件配置正确 我尝试使用环境获取 Spr
  • 如何更改过去的提交以包含丢失的文件?

    我已提交更改 但忘记将文件添加到更改集中 在其他提交之后 我意识到该文件现在从HEAD 4 commit 如何重写以前的提交以包含丢失的文件 我意识到人们可以谷歌并来这里找到一个更简单的答案 如果这只是最后一次提交怎么办 OP的问题是修复历
  • 如何使用 Spring Boot 和 Cassandra 将枚举持久化为序数?

    我已添加到实体的枚举字段 CassandraType type DataType Name INT 然而 在发送到 Cassandra 的语句中使用的不是枚举的序数 而是字符串表示形式 因此我收到以下错误 org springframewo
  • POI:意外的记录类型 org.apache.poi.hssf.record.HyperlinkRecord

    我正在执行一项简单的任务 读取 Excel 文件并将其转换为对象 不过 我在读取 Excel 文件 xls 时遇到问题 我将从外部系统接收它 也许他们自动生成它 如果我打开它并进行简单的保存 无论是否更改 Excel 文件中的任何内容 我的
  • C++ tbb_debug.dll 丢失

    我是 openCV 的新手 我尝试遵循一些教程 一切工作正常 直到我包含 opencv2 imgproc imgproc hpp 并使用 filter2D 函数 当我启动我的程序时 出现以下错误 程序无法启动 因为您的计算机缺少 tbb d
  • DataContractSerializer 和已知类型

    我正在代码中序列化一个对象 不是通过 WCF 调用 并且我对已知类型有点沉迷 我已将它们与 WCF 一起使用 但没有将 DataContract 序列化器作为 独立 序列化器使用 当我运行下面的代码时出现异常 我希望它运行时不会出现错误 因
  • WebStorm 和 TypeScript:如何导航到包的 JS 源文件?

    假设在我的 TypeScript 项目中 我使用 Express 和如下方法 response send Hello 我想看看如何send 方法被实施 但是 当我在 WebStorm 中按住 Ctrl 键并单击方法名称时 它会将我带到 d
  • 临时文件 asp.net resx 文件,“已添加具有相同密钥的项目”

    几周前 我们将服务器从 NET 4 5 更新到 4 5 1 并将代码更改为作为 优化代码 运行 在即将发布的版本中 我们开始在日志中收到奇怪的错误消息 并且网站刚刚崩溃 System ArgumentException An item wi
  • php数组加载到javascript中

    所以我是个 php javascript 菜鸟 我正在尝试将完整的 php 数组加载到 javascript 数组中 我为 JavaScript 写了这个 var names new Array for var i 0 i lt 48 i
  • Java 中的非空白匹配

    我想检测其中包含非空白字符的字符串 现在我正在尝试 Pattern matches S city 但它似乎不起作用 有没有人有什么建议 我知道我可以修剪字符串并测试它是否等于空字符串 但我宁愿这样做 您认为正则表达式到底匹配什么 Try P
  • ruby - 文件私有方法

    在ruby中 有没有办法定义一个方法 该方法对文件 或模块 中的每个类都可见 但对需要该文件的文件不可见 相关 但不完全相同 我们可以重新定义一个方法 例如标准库的类中的方法 以便此重新定义仅在当前文件中可见吗 所有其他文件应查看原始定义
  • Python:检查对象是否可以原子方式pickle

    检查对象是否可以被原子腌制的准确方法是什么 当我说 原子腌制 时 我的意思是不考虑它可能引用的其他对象 例如 这个列表 l threading Lock 不是一个可腌制的对象 因为它指的是Lock这是不可腌制的 但从原子角度来看 这个列表本
  • 使用 Microsoft bot 框架下载文件(pdf/图像)

    我想下载文档 图像 文档 图像位于互联网上 我给出了它的路径 但它不起作用 但是 如果我只是评论附件部分 我就能从 BOT 那里得到 嗨 让控制器像这样 BotAuthentication public class MessagesCont