Node.js 通过firebase项目上的节点发送电子邮件

Node.js 通过firebase项目上的节点发送电子邮件,node.js,firebase,dialogflow-es,Node.js,Firebase,Dialogflow Es,我正在开发一个我在node中编写的google操作,并部署到firebase,通过API.AI上定义的意图进行交互 我想实现一个功能,当一个特定的意图被激活时,它会将一封电子邮件发送到一个特定的地址。我尝试过使用nodemail和sendmail软件包,但是在使用它们部署之后,当调用正确的意图时,它们似乎不会发送电子邮件。我不确定问题是否在于编码错误(鉴于我的经验不足,这种可能性很明显),或者在firebase部署中指定这些包是否存在固有问题。我已经能够通过简单地从内部返回对API.AI的响应来

我正在开发一个我在node中编写的google操作,并部署到firebase,通过API.AI上定义的意图进行交互

我想实现一个功能,当一个特定的意图被激活时,它会将一封电子邮件发送到一个特定的地址。我尝试过使用nodemail和sendmail软件包,但是在使用它们部署之后,当调用正确的意图时,它们似乎不会发送电子邮件。我不确定问题是否在于编码错误(鉴于我的经验不足,这种可能性很明显),或者在firebase部署中指定这些包是否存在固有问题。我已经能够通过简单地从内部返回对API.AI的响应来验证我是否进入了执行
sendmail
的代码内部;如果我能够访问firebase或API.AI日志,我不知道如何访问。AI显示了一个JSON响应,但据我所知,仅此而已

以下是一些简化代码(仅相关部分):


下面是一个使用Firebase云函数(又称Firebase函数)、NodeEmailr和Gmail的示例:

当webhook调用失败时,API.AI在API.AI的模拟器中指示206,因为即使webhook调用失败,某些内容通常也会被API.AI识别。如果在单击“ShowJSON”后看到错误,请检查要调试的webhook(在本例中为Firebase)日志。以下是一些屏幕截图:

单击“显示JSON”将创建以下弹出窗口:


206部分内容Webhook调用失败。错误:Webhook响应为空。
表示您的Webhook出现某种错误,可能是500错误、无法正确格式化的成功响应,或者您输入的Webhook的HTTPS URL不正确。

是否看到错误?您是否有一些最低限度的代码不能按预期的方式工作?您是否使用Firebase的云函数?我在API.AI接口或JSON响应中没有看到任何类型的错误。我在答案里加了一些代码。我读到有一种方法可以使用云功能发送电子邮件,但我希望绕过它,做一些非常简单的事情。事实上,我最终通过云功能实现了这一点。我认为使用firebase部署中嵌入的常规节点包是不可能的,但显然我可能错了。
const sendmail = require('sendmail')();

const getSuggestion = app => {

    const rawInput = app.getRawInput();

    sendmail({
        from: 'no-reply@yourdomain.com',
        to: 'myemail@gmail.com',
        subject: 'test sendmail',
        html: rawInput,
        }, function(err, reply) {
        console.log(err && err.stack);
        console.dir(reply);
        return app.ask('You said ' + rawInput + '. Do you have any further input?');
    });

};