gpt4 book ai didi

javascript - DialogFlow Webhook : Error: EROFS: read-only file system, 打开 '.node-xmlhttprequest-sync-2'

转载 作者:行者123 更新时间:2023-12-05 07:38:51 26 4
gpt4 key购买 nike

我正在创建 DialogFlow 应用程序并使用 Cloud Functions for Firebase 部署实现,它使用 XMLHttpRequest。但是出现以下错误。

Error: EROFS: read-only file system, open '.node-xmlhttprequest-sync-2' at Error (native) at Object.fs.openSync (fs.js:642:18) at Object.fs.writeFileSync (fs.js:1348:33) at send (/user_code/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:477:10)

我的代码是这样的。

'use strict';

const admin = require('firebase-admin');
const functions = require('firebase-functions');

const DialogflowApp = require('actions-on-google').DialogflowApp;
const XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;
const googleAssistantRequest = 'google';

const Actions = {
UNRECOGNIZED_DEEP_LINK: 'deeplink.unknown',
TEST_HTTPREQUEST: 'test.httprequest'
};

const testHttpRequest = app => {
var req = new XMLHttpRequest();
req.open('GET', 'http://www.google.com', false);
req.send();
if (req.status === 200) {
console.log(req.responseText);
}
}

const actionMap = new Map();
actionMap.set(Actions.TEST_HTTPREQUEST, testHttpRequest);

exports.mytestapp = functions.https.onRequest((request, response) => {
const app = new DialogflowApp({ request, response });
console.log(`Request headers: ${JSON.stringify(request.headers)}`);
console.log(`Request body: ${JSON.stringify(request.body)}`);
app.handleRequest(actionMap);
});

有人知道如何解决这个错误吗?

最佳答案

您的函数 testHttpRequest 需要使用 app 来响应来自 Dialogflow 的用户请求。使用 asktell 方法来响应请求。例如,在 testHttpRequest 中的 if 语句之后,您可以添加:

app.tell('This response came from Cloud Functions for Firebase!');

当您从 Action on Google 模拟器或 Google Assistant 设备调用您的智能助理应用时,它告诉 Action on Google 客户端库发送字符串作为对您请求的响应(请参阅 Action on Google 测试文档)。

您可能还会遇到操作名称问题。您在此处执行的操作(deeplink.unknowntest.httprequest)也必须列为 an action in an intent in your Dialogflow agent否则你的代码将永远不会被触发。 Google 智能助理还需要一个欢迎意图。默认情况下,Dialogflow 中的欢迎意图具有 input.welcome 操作,该操作未包含在您的代码中,因此在您匹配代码和 Dialogflow 代理中列出的操作之前,您的代码可能不会被触发。

更多外部 HTTP 调用(在 Google 网络之外)are not permitted on Cloud Functions without setting up billing first .

关于javascript - DialogFlow Webhook : Error: EROFS: read-only file system, 打开 '.node-xmlhttprequest-sync-2',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47486904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com