【问题标题】:Nexmo: Receiving SMSesNexmo:接收短信
【发布时间】:2020-02-15 18:53:08
【问题描述】:

作为 Nexmo 的新手,我发现了一种使用 Firebase here 接收短信的简单方法。

使用以下命令初始化 Firebase 后:

firebase init functions

你写入生成的index.js:

const functions = require('firebase-functions');
const admin = require('firebase-admin'); 

admin.initializeApp();

exports.inboundSMS = functions.https.onRequest(async (req, res) => {
  await admin.database().ref('/msgq').push(req.body);
  res.send(200);
});

然后您将代码部署到 Firebase:

firebase deploy --only functions

产生类似于以下内容的回调 URL(webhook):

https://us-central1-nexmo-project.cloudfunctions.net/inboundSMS

通过在 Nexmo Dashboard 的 API 设置中添加上述 URL,消息将被 Firebase DB 抓取。

现在我有两个问题。
首先是许可问题:作者声称 Firebase“需要使用第三方 API 的按需付费计划”。这是什么意思? webhook消费者不总是第三方吗?我在Firebase site 上找不到任何有用的提示。

第二个问题是关于保护回调 URL 的。似乎每个人都可以通过 URL 发送数据,那么如何避免垃圾邮件和 URL 的细读呢?

【问题讨论】:

    标签: firebase sms webhooks vonage


    【解决方案1】:

    很高兴您发现我的帖子很有用。

    回答你的问题 -

    1. 如果您使用 Nexmo 发送 SMS 或任何其他需要您调用第 3 方 API 的服务,则需要使用 Firebase 的即用即付模式。如果您只想将它​​用作将从外部源调用的网络挂钩进入 Firebase,那么免费层应该是可用的。区别在于调用外部 API。 Google 对这种类型的调用提供了更好的解释 - https://firebase.google.com/docs/functions/use-cases#integrate_with_third-party_services_and_apis。 Google 网络调用不应包含在其中 - 这是使用 Firebase 的好处之一。

    2. 保护 webhook 有几个选项。首先是,它不是一个容易被发现的 URL,所以保持它的私密性应该是最初的防线。 Nexmo 还有一个可以在此处列入白名单的 IP 列表 - https://help.nexmo.com/hc/en-us/articles/204015053。在标头中,您应该能够在允许它执行任何其他操作之前找到 IP 并对其进行验证,或者完全将其踢出。

    如果有帮助,请告诉我!

    【讨论】:

    • 谢谢。使用其他 Google API 会算作第三方吗?例如,使用您的发送功能通过 Gmail 帐户将 SMS 作为电子邮件转发。
    • 我认为这将有助于更好地解释它 - firebase.google.com/docs/functions/…
    猜你喜欢
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多