Firebase Nexmo:接收SMSE

Firebase Nexmo:接收SMSE,firebase,sms,webhooks,nexmo,Firebase,Sms,Webhooks,Nexmo,作为Nexmo的新手,我发现了一种使用Firebase接收SMSE的简单方法 使用以下命令初始化Firebase后: firebase init functions 您可以写入生成的index.js: const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); exports.inboundSMS = functions.h

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

使用以下命令初始化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仪表板的API设置中添加上述URL,Firebase DB将捕获消息

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


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

很高兴你发现我的帖子很有用

要回答您的问题——

  • 如果您使用Nexmo发送SMS或任何其他需要您调用第三方API的服务,则需要使用Firebase的按量付费。如果您只想将其用作从外部源调用到Firebase的webhook,那么免费层应该是可用的。区别在于调用外部API。谷歌提供了一个更好的解释这种类型的通话-。谷歌网络电话不应该包括在这里面——使用Firebase的好处之一

  • 保护webhook有几个选项。首先,它不是一个容易发现的URL,所以保持它的私有性应该是第一道防线。Nexmo还有一个IP列表,可以在此处白名单-。在报头中,您应该能够找到IP并在允许它执行任何其他操作之前对其进行验证,或者干脆将其完全踢出


  • 如果有帮助,请告诉我

    多谢各位。使用其他谷歌API会算作第三方吗?例如,使用你的发送功能通过Gmail帐户将短信转发为电子邮件。我认为这将有助于更好地解释这一点-