2017-11-25 171 views
2

我正在創建DialogFlow應用程序,併爲使用XMLHttpRequest的Firebase部署了雲功能。 但發生以下錯誤。DialogFlow Webhook:錯誤:EROFS:只讀文件系統,打開'.node-xmlhttprequest-sync-2'

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); 
}); 

有沒有人有關於如何解決這個錯誤的想法?

回答

0

您的功能testHttpRequest需要使用app來響應來自Dialogflow的用戶請求。使用asktell方法來響應請求。例如,在testHttpRequest if語句後,你可以添加:

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

告訴在谷歌客戶端庫的行動,當你從谷歌模擬器或行動打電話給你的助手應用程序發送的字符串作爲你的請求的響應Google智能助理設備(請參閱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

相關問題