botframework - BotFramework TurnContext SendActivityAsync“对象引用未设置为对象的实例”
问题描述
我正在尝试在 Azure Functions Powershell 中使用 botframework v4。我只需调用原始 REST API 并使用像 Activity 这样的 botframework 类型,就可以成功地完成这项工作。
现在我正在尝试正确使用框架和适配器。但是,当我在 Turn Context 上调用 SendActivityAsync 时,我得到“对象引用未设置为对象的实例”,并且真的无法找出它的来源。
这里有什么明显遗漏的东西,或者我遗漏了另一种使用 BotFrameWork 适配器的方法吗?我正在尝试使 EchoBot 示例适应 Powershell,因为 ConsoleBot 示例不会将 http 回调到 bot 框架。
假设 Activity 是真实的,我知道这不是我的 null 的来源(如果是的话,它不会让我创建 turncontext)
$activity = [JsonConvert]::DeserializeObject(($QueueItem -replace '^---JSON---',''), [activity])
#Only Process Message Activities for now
if ($activity.Type -ne 'message') {return}
$reply = $activity.CreateReply("I got your message that says $($activity.text)")
$appCredentials = [MicrosoftAppCredentials]::new('c28d55e3-fb0b-4367-b4a6-f00959a54e5b','n=_y:3LsJo/MYAPPSECRETP5')
$botFrameworkAdapter = [BotFrameworkAdapter]::new($appCredentials, [AuthenticationConfiguration]::new())
$turnContext = [TurnContext]::new($botFrameworkAdapter, $Activity)
$turnContext.SendActivityAsync($reply).GetAwaiter().GetResult()
解决方案
推荐阅读
- android - 如何在 viewModel 中使用双向绑定
- puppeteer - page.goto 请求网页在 puppeteer 中不断加载 networkidle0
- recursion - 方案:过程是递归的,但过程是递归的还是迭代的?
- pandas - 在 DataFrame 中展开列表
- awk - 如何将csv中的四列与awk进行比较?
- javascript - .mouseleave 具有相同类的多个元素
- javascript - 自定义图形属性/对象一致性
- google-cloud-platform - 未找到请求的项目
- javascript - 在反应路由器中设置baseurl
- tensorflow - 使用经过训练的对象检测 API 模型和 TF 2 进行批量预测