Nexmo:接收短信
Nexmo: Receiving SMSes
作为 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 仪表板的 API 设置中添加上述 URL,消息将被 Firebase DB 抓取。
现在我有两个问题。
首先是许可问题:作者声称 Firebase "Pay-as-you-go plan is required to use a third-party API"。这是什么意思? webhook 消费者不总是第三方吗?我在 Firebase site.
上找不到任何有用的提示
第二个问题是关于保护回调URL。 URL好像大家都可以发数据,那怎么才能避免URL的垃圾邮件和阅读呢?
很高兴您发现我的 post 有用。
回答您的问题 -
如果您使用 Nexmo 发送短信,或任何其他需要您呼叫第三方 API 的服务,您需要使用 pay-as-you-go来自 Firebase。如果您只想将它用作将从外部源 调用到 Firebase 的 webhook,则应该可以使用免费层。不同之处在于调用外部 APIs。 Google 对此类调用提供了更好的解释 - https://firebase.google.com/docs/functions/use-cases#integrate_with_third-party_services_and_apis。 Google 网络调用不应包含在此 - 使用 Firebase 的好处之一。
保护 webhook 有几个选项。首先,它不是一个容易被发现的 URL,因此将其保密应该是最初的防线。 Nexmo 也有一个 IP 列表,可以在此处列入白名单 - https://help.nexmo.com/hc/en-us/articles/204015053。在 headers 中,您应该能够找到 IP 并在允许它执行任何其他操作之前对其进行验证,或者完全将其踢出。
如果有帮助请告诉我!
作为 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 仪表板的 API 设置中添加上述 URL,消息将被 Firebase DB 抓取。
现在我有两个问题。
首先是许可问题:作者声称 Firebase "Pay-as-you-go plan is required to use a third-party API"。这是什么意思? webhook 消费者不总是第三方吗?我在 Firebase site.
第二个问题是关于保护回调URL。 URL好像大家都可以发数据,那怎么才能避免URL的垃圾邮件和阅读呢?
很高兴您发现我的 post 有用。
回答您的问题 -
如果您使用 Nexmo 发送短信,或任何其他需要您呼叫第三方 API 的服务,您需要使用 pay-as-you-go来自 Firebase。如果您只想将它用作将从外部源 调用到 Firebase 的 webhook,则应该可以使用免费层。不同之处在于调用外部 APIs。 Google 对此类调用提供了更好的解释 - https://firebase.google.com/docs/functions/use-cases#integrate_with_third-party_services_and_apis。 Google 网络调用不应包含在此 - 使用 Firebase 的好处之一。
保护 webhook 有几个选项。首先,它不是一个容易被发现的 URL,因此将其保密应该是最初的防线。 Nexmo 也有一个 IP 列表,可以在此处列入白名单 - https://help.nexmo.com/hc/en-us/articles/204015053。在 headers 中,您应该能够找到 IP 并在允许它执行任何其他操作之前对其进行验证,或者完全将其踢出。
如果有帮助请告诉我!