javascript - Bot Framework V4 - TypeError : Cannot perform 'get' on a proxy that has been revoked

标签 javascript botframework

我正在尝试对存储用户知识文章的数据库进行休息查询,并根据用户搜索的内容返回一组结果。每当我尝试搜索时,我都会得到:

"TypeError: Cannot perform 'get' on a proxy that has been revoked"

我已尝试将其添加到异步,如图所示,但我仍然不断收到相同的错误。知道我做错了什么吗?

const Response = async (turnContext) => {
    if (turnContext.activity.value.choice === 'feedbackProvider') {
        try {
            const feedbackBody = turnContext.activity.value.feedbackBody;
            const feedbackEmail = turnContext.activity.value.feedbackEmail;
            storage.write(feedbackBody, feedbackEmail);
            await turnContext.sendActivity(`Feedback Sent`);
        } catch (err) {
            console.log('fetch failed', err);
        }
    } else if (turnContext.activity.value.choice === 'issueRaiser') {
        try {
            const bugTitle = turnContext.activity.value.issueTitle;
            const bugDesc = turnContext.activity.value.issueDescription;
            const bugEmail = turnContext.activity.value.issueEmail;
            const request = require('request');
            request({
                method: 'Post',
                uri: `<uri>issues?title=${ bugTitle }&description=${ bugDesc } ${ bugEmail }&labels=bug`,
                json: true,
                headers: {
                    'Private-Token': '<token>'
                }
            });
            turnContext.sendActivity(`Issue Raised`);
        } catch (err) {
            console.log('fetch failed', err);
        }
    } else if (turnContext.activity.value.choice === 'knowledgeBaseSearch') {
        try {
            const knowledgeBaseTopic = turnContext.activity.value.knowledgeBaseTopic;
            request({
                url: process.env.SN_KB_URL + knowledgeBaseTopic,
                json: true,
                auth: {
                    'username': process.env.Ticket_User,
                    'password': process.env.Ticket_Key
                }
            }, async (error, response, body) => {
                try {
                    var stuff = [];
                    for (var i = 0, len = body.result.length; i < len; i++) {
                        stuff.push(
                            CardFactory.heroCard(body.result[i].short_description, ['imageUrl1'], [`${ process.env.SN_KB_Resp_URl }${ body.result[i].number }`])

                        );
                    }
                    let messageWithCarouselOfCards = MessageFactory.carousel(stuff);
                    await turnContext.sendActivity(messageWithCarouselOfCards);
                } catch (err) {
                    console.log(error);
                }
            });
        } catch (err) {
            console.log('fetch failed', err);
        }
    }
};

完整错误信息:

TypeError: Cannot perform 'get' on a proxy that has been revoked
cardMiddleware.js:35
    at Request.request [as _callback] (c:\Bots\sdk4-2\skills\cardMiddleware.js:35:45)
    at Request.self.callback (c:\Bots\sdk4-2\node_modules\request\request.js:186:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)
    at Request.<anonymous> (c:\Bots\sdk4-2\node_modules\request\request.js:1163:10)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at IncomingMessage.<anonymous> (c:\Bots\sdk4-2\node_modules\request\request.js:1085:12)
    at Object.onceWrapper (events.js:313:30)
    at emitNone (events.js:111:20)

从我在论坛上的帖子得知,我使用的请求模块不支持 Promises,我认为这是导致我出错的原因。我现在开始使用 Axios 来处理我的请求,如下所示;

try {
    return await axios.get(process.env.SN_KB_URL + knowledgeBaseTopic, {
        headers: {
          auth: {
          username: process.env.Ticket_User,
          password: process.env.Ticket_Key
        }
      }
    })
  }

但是现在,当我运行请求时,我收到 401“未授权”错误,我不确定我的请求有什么问题。

最佳答案

发生此问题是因为我使用的请求模块不支持 promise 。将我的请求模块更改为支持 promise 的模块(我通过使用 this article 发现了这一点)解决了这个问题。

关于javascript - Bot Framework V4 - TypeError : Cannot perform 'get' on a proxy that has been revoked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52969703/

相关文章:

javascript - 我怎样才能找出哪些事件附加到 HTML 元素?

javascript - 点击 Vue.js 组件后星星淡出

c# - Bot Framework v4.2 - 优雅地从 OnTurnError 异常中恢复

node.js - 如何通过 Bot Framework 使用 Telegram channel 在回发按钮中发送对象?

javascript - Angular 模块没有导出成员 'fromEvent'

javascript 阻止表单提交

botframework - 如何解决 Bot Framework Channel Emulator 中的 “500 internal server error” 错误?

c# - Bot Framework Context Wait 不等待下一条消息

azure - 我应该使用哪种机器人解决方案,Botframework 或 Composer 工具或 Power Virtual Agent? Power 虚拟代理成本高吗?

javascript - 在 JavaScript 中使用/定义函数时出错