带有标头属性的 BOT 框架 Directline API 调用

用户2231

我想调用我的 BOT 框架 Directline API,并带有附加标头属性和直接线路机密。如何在我的 BOT 框架代码中提取它并将其放入 IBOTStore 以备将来使用。我想知道我是否可以在意图级别读取标题属性?

这是我解析 alexa API 请求的示例代码:

 var directLineSecret = ConfigurationManager.AppSettings["directlinesecret"];
        _client = new DirectlineClient(directLineSecret, "alexa" + Guid.NewGuid().ToString().Replace("-", ""));

var client = new HttpClient
        {
            BaseAddress = new Uri("https://directline.botframework.com")
        };

        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("BotConnector", _secret);
        client.DefaultRequestHeaders.Add("ETag", "*");
        client.DefaultRequestHeaders.Add("channel", _from);

        var response =
            await client.GetAsync("/api/tokens/", HttpCompletionOption.ResponseHeadersRead)
            .ConfigureAwait(false);
        response.EnsureSuccessStatusCode();

        response =
            await client.PostAsJsonAsync("/api/conversations/", new object())
            .ConfigureAwait(false);
        response.EnsureSuccessStatusCode();

        var conversationInfo =
            await response.Content.ReadAsAsync<JObject>()
            .ConfigureAwait(false);

        _conversationId = (string)conversationInfo["conversationId"];
        var scopedToken = (string)conversationInfo["token"];

        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("BotConnector", scopedToken);

机器人框架

 public async Task None(IDialogContext context, LuisResult result)
    {
        try
        {...............}

感谢您的提前支持!!

科林

正如@Fei Han 所说,自定义标头被剥离并且不会到达应用程序,因此这不是发送信息的好方法。

发送活动自定义数据的一种好方法是通过通道数据。对于非 Direct Line 频道,此处提供了有关如何执行操作的教程幸运的是,对于 Direct Line,channelData 属性上的数据没有预先格式化的架构,您需要将 JSON 保存在其中,因此您基本上可以根据需要形成数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Microsoft Bot Framework .Net中的Directline API和OAuth2有什么区别?

如何在Microsoft Bot框架中进行Rest API调用

将Microsoft Bot DirectLine API指向插槽实例

LUIS Bot框架不会从外部调用中调用Intent

带有LUIS的Microsoft Bot框架

Bot DirectLine 令牌分发问题

Botframework Directline 消息不会到达 Bot

BOT DirectLine与MVC应用程序集成

框架如何知道调用了哪个api?

离子框架中的api调用错误

带有API的Ruby传递标头

在bot框架中调用CancelAllDialogsAsync时如何传递结果?

不能使用nodejs调用ms bot框架onMember⚓Activity

bot框架通过恢复对话框提示调用UserMessagesAsync

Bot框架中提示的可选属性

django rest框架-使用单个API调用创建具有外键的资源

没有Azure的Bot框架可能吗?

带有认知语音的Azure Bot框架不起作用

带有Chromecast的Swift框架:框架模块内部包含非模块化标头

如何通过Directline将带有有效负载的自定义消息从Bot发送到客户端应用程序?

使用带有 API 密钥标头的 Fetch API

所有 API 调用都包含 VodaPay 小程序的 Referer 标头吗?

为什么用户在bot框架中的Microsoft Graph API和UserID之间具有不同的ID格式?

播放框架-ErrorHandler没有被调用

Bot仿真器错误:POST 400 directline.postActivity

Bot Emulator获得POST 500 Directline.postActivity

Microsoft Bot Framework DirectLine无法访问对话

Azure Bot-从HTML页面隐藏秘密生成Directline令牌

从 Microsoft 框架 BOT 框架切换到基于 Amazon 云的聊天 BOT。有没有相同的通用框架?