Nexmo: получение смс - PullRequest
       35

Nexmo: получение смс

1 голос
/ 15 февраля 2020

Будучи новичком в Nexmo, я нашел простой способ получать SMS-сообщения с использованием Firebase здесь .

После инициализации 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

При добавлении вышеуказанного URL-адреса в настройки API панели инструментов Nexmo сообщения будут перехвачены Firebase DB.

Теперь у меня есть два вопроса.
Первый - это проблема с лицензированием: автор утверждает, что для использования стороннего API требуется Firebase "Pay-as-you- go план". Что это значит? Разве потребитель webhook не всегда является третьей стороной? На сайте Firebase .

я не нашел никаких полезных советов. Второй вопрос касается защиты URL обратного вызова. Кажется, что каждый может отправлять данные через URL, так как я могу избежать спама и прочтения URL?

1 Ответ

2 голосов
/ 16 февраля 2020

Рад, что вы нашли мой пост полезным.

Чтобы ответить на ваши вопросы -

  1. Если вы используете Nexmo для отправки SMS или какой-либо другой услуги, которая потребует от вас вызова стороннего API, вы должны нужно использовать pay-as-you- go от Firebase. Если вы хотите использовать его только как веб-крючок, который будет вызываться из внешнего источника в Firebase, бесплатный уровень должен использоваться. Разница заключается в вызове внешних API. Google дает лучшее объяснение этого типа звонка - https://firebase.google.com/docs/functions/use-cases#integrate_with_third -party_services_and_apis . Сетевые вызовы Google не должны быть включены в это - одно из преимуществ использования Firebase.

  2. Защита веб-крюка имеет несколько вариантов. Во-первых, это не легко обнаруживаемый URL, поэтому сохранение его в секрете должно быть начальной линией защиты. Nexmo также имеет список IP-адресов, которые могут быть внесены в белый список здесь - https://help.nexmo.com/hc/en-us/articles/204015053. В заголовках вы должны быть в состоянии найти IP-адрес и проверить его, прежде чем позволить ему делать что-либо еще, или просто полностью исключить его.

Дайте мне знать, если это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...