Vic*_*lle 1 node.js nodemailer actions-on-google dialogflow-es
我想发送一封电子邮件,用于我在Dialogflow中创建的程序中的操作.
我想使用NodeMailer但是当我部署我的项目时,我有这样的错误消息:
您的Cloud功能部署失败:功能加载错误:无法加载文件index.js中的代码.您是否列出了package.json依赖项中所有必需的模块?详细的堆栈跟踪:错误:找不到模块'nodemailer'
这可以在DialogFlow中使用NodeMailer吗?
谢谢
听起来你在Dialogflow中使用了内置的Fulfillment Editor.
如果是这样,使用NodeMailer有两个问题
两者都是可以修复的.
但请记住,您不需要使用Dialogflow编辑器.欢迎您在任何可公开访问的HTTPS服务器上运行实现.
将NodeMailer添加到package.json中
在Fulfillment页面的Inline Editor部分中,您将单击标记为package.json的选项卡.你会在那里看到一些JSON,包括一个标题为"依赖"的部分.您需要在该部分添加行,指示其他npm模块是必需的 - 在您的情况下,是"nodemailer"包.
您的新"依赖项"部分可能如下所示:
"dependencies": {
"actions-on-google": "^1.5.x",
"firebase-admin": "^4.2.1",
"firebase-functions": "^0.5.7",
"nodemailer": "^4.4.2",
"apiai": "^4.0.3"
}
Run Code Online (Sandbox Code Playgroud)
测试一下以确保它正确部署.但是一旦它部署,你可能会遇到另一个问题.
有限的网络访问
对于nodemailer的某些配置,它似乎可能想要连接到某个地方的邮件服务器.Firebase云功能的基础级别限制您仅连接到Google网络服务.如果您要连接到GMail - 您可能没事.但如果没有,你需要升级.
您可以转到Firebase控制台并选择与Dialogflow相同的项目,然后升级到Blaze Plan.虽然这要求您输入信用卡,并且需要使用计费,但仍有一个免费套餐足以进行测试和实验.