繁体   English   中英

DialogFlow Webhook:错误:EROFS:只读文件系统,打开“ .node-xmlhttprequest-sync-2”

[英]DialogFlow Webhook : Error: EROFS: read-only file system, open '.node-xmlhttprequest-sync-2'

我正在创建DialogFlow应用程序,并通过使用XMLHttpRequest的Cloud Functions for Firebase部署了实现。 但是发生以下错误。

错误:EROFS:只读文件系统,在Object.fs.writeFileSync(fs.fs.openSync(fs.js:642:18),错误(native),在错误(本机)打开'.node-xmlhttprequest-sync-2'。 js:1348:33)发送(/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!');

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

您可能还会遇到动作名称问题。 您在实现中引用的操作( deeplink.unknowntest.httprequest )也必须作为Dialogflow代理中的意图操作列出,否则将永远不会触发您的代码。 Google助手还需要一个欢迎的意图。 默认情况下,在Dialogflow欢迎有意向的动作input.welcome这是不是在你的代码中包含了,直到你匹配你的代码,并在您Dialogflow剂中的动作,你的代码可能无法触发。

此外, 在未先设置结算功能的情况下,不允许在Cloud Functions上进行外部HTTP调用(在Google网络外部)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM