【问题标题】:Use MailGun API from react native app使用来自 react native 应用程序的 MailGun API
【发布时间】:2018-06-18 21:12:00
【问题描述】:

我正在使用 Expo 构建一个小型反应原生应用程序,并且需要一个从应用程序内发送电子邮件的功能。用户一开始不需要撰写任何内容,因此只需按下一个按钮,即可将电子邮件发送到用户输入的地址。

我的问题是最适合这份工作的架构是什么。到目前为止,我已经研究过简单地使用Fetch API,然后调用 MailGun API。但是,据我了解,以纯文本形式公开 API 密钥并不是最佳做法,因此我考虑过 Cloud Functions from Firebase,但不确定这是否是一个可行的选择。谁能帮我指出正确的方向?

【问题讨论】:

  • 使用云功能,在.onCreate键上设置监听器。然后当在 react 应用程序中创建记录时 - 按下按钮后,云功能可以启动并发送电子邮件。
  • 就使用 Fetch API 而言,无论如何它都不会工作,因为您无法从浏览器中运行的前端 JavaScript 代码向 Mailgun API 发出经过身份验证的请求。 Mailgun API 故意不支持这一点。在stackoverflow.com/questions/50076659/…查看答案
  • 谢谢@sketchthat,这对我有用。如果你写一个答案,我会接受:)

标签: firebase react-native mailgun fetch-api


【解决方案1】:

您是对的,公开 API 密钥不是最佳做法,因为其他人可以访问它并使用您的 MailGun 信用。

一个简单的开始方法是创建一个云函数来监听某个路径.onCreate

在您的应用程序中 - 推送到该路径,云功能将启动并发送邮件,而不会暴露您的私钥。

需要注意的一点 - 在使用 firebase 免费套餐时,您无法连接到外部域 - 因此,如果您在 API 上遇到错误,可能是因为您需要更新计划。

【讨论】:

  • 无法连接到外部域是什么意思?
  • 在 Firebase 免费层中,您只能连接到 Google 服务。由于 MailGun 是一项外部服务,因此您需要激活付费计划才能使云功能正常工作。
猜你喜欢
  • 2020-03-11
  • 2021-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 1970-01-01
  • 2020-10-14
相关资源
最近更新 更多