gpt4 book ai didi

node.js - 在 Dialogflow 中使用 NodeMailer

转载 作者:太空宇宙 更新时间:2023-11-03 22:42:05 24 4
gpt4 key购买 nike

我想发送一封电子邮件,以便在我的 Dialogflow 程序中进行操作。

我想使用 NodeMailer,但是当我部署项目时,我收到此错误消息:

The deployment of your Cloud Function failed: Function load error: Code in file index.js can't be loaded. Did you list all required modules in the package.json dependencies? Detailed stack trace: Error: Cannot find module 'nodemailer'

可以在 DialogFlow 中使用 NodeMailer 吗?

谢谢

最佳答案

听起来您正在使用 Dialogflow 中的内置 Fulfillment Editor。

如果是这样,那么您在使用 NodeMailer 时遇到两个问题

  1. 您需要将其包含在 package.json 文件中
  2. 默认情况下,您的代码将在网络访问受限的 Firebase Cloud Function 中运行。

两者都是可以修复的。

但是请记住,您不需要使用 Dialogflow 编辑器。欢迎您在任何可公开访问的 HTTPS 服务器上运行履行。

将 NodeMailer 添加到 package.json

在“读者服务”页面的“内联编辑器”部分中,您将单击标记为 package.json 的选项卡。您将在其中看到一些 JSON,其中包括标题为“依赖项”的部分。您需要向该部分添加行,指示哪些其他 npm 模块是必需的 - 在您的情况下,是“nodemailer”包。

enter image description here

您的新“依赖项”部分可能如下所示:

  "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"
}

对此进行测试以确保其部署正确。但一旦部署,您可能会遇到另一个问题。

网络访问受限

对于nodemailer的某些配置,它似乎可能想要连接到某个地方的邮件服务器。 Firebase Cloud Functions 的基础级别限制您只能连接到 Google 网络服务。如果您连接到 GMail - 可能没问题。但如果没有,您将需要升级。

您可以通过访问 Firebase Console 来执行此操作并选择您用于 Dialogflow 的同一项目,然后升级到 Blaze 计划。尽管这需要您输入信用卡,并且需要进行使用计费,但仍然有一个足以进行测试和实验的免费套餐。

关于node.js - 在 Dialogflow 中使用 NodeMailer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48398663/

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