首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Botframework/Botbuilder发送HTTP请求

Botframework/Botbuilder发送HTTP请求
EN

Stack Overflow用户
提问于 2020-09-29 09:30:50
回答 1查看 187关注 0票数 0

我使用JavaScript和Botbuilder创建了一个BotFramework机器人。

对于这个机器人,我使用一个自适应对话框。在对话框的某个时候,我需要发送一个HTTP请求。

现在,我的HTTP请求步骤如下所示:

代码语言:javascript
复制
new HttpRequest().configure({
    resultProperty: new StringExpression("user.teamProfile.accessToken"),
    url: new StringExpression('https://login.microsoftonline.com/myTenantId/oauth2/v2.0/token'),
    method: HttpMethod.POST,
    contentType: new StringExpression('application/x-www-form-urlencoded'),
    headers: {
        "Content-Type": new StringExpression("application/x-www-form-urlencoded")
    },
    body: new StringExpression("client_id: myClientId, scope: https://graph.microsoft.com/.default, client_secret: myclientSecret, grant_type: client_credentials"),
    responseType: ResponsesTypes.Json
})

bot本身正在工作,但当它尝试执行HTTP步骤时,我得到以下错误消息:

代码语言:javascript
复制
Error: TypeError: path.indexOf is not a function

不幸的是,我没有得到更多的信息。有人能帮我吗?

诚挚的问候,

BufferOverflow

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-06 14:13:38

由于HttpRequest-步骤不起作用,我更改为CodeAction。

在这个CodeAction中,我执行Http请求并处理结果(转换结果或将它们保存在对话框变量中)。

代码片段可能如下所示:

代码语言:javascript
复制
new CodeAction(async (dc, options) => {
    // Send your request
    // options being the headers, body, etc.
    const response = await this.fetch(url, options);

    // Work on you result and if necessary, save it to a dialog variable
    dc.state.setValue("user.yourPropertyName", value);

    // Needed for the Bot to continue working
    return await dc.endDialog();
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64116766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档