送信し、ノード、nexmo、およびfirebase関数でSMSメッセージを受信する
Firebaseプラットフォームでは、開発者がアプリケーションのバックエンドを迅速に構築できます.また、それを使用するのも楽しいです.このチュートリアルでは、いくつかのSMSのメッセージングのためのそれを使用して起動したいNexmo . このウォークスルー後、SMSメッセージログを作成することができますし、送信者への応答を使用してFirebase Functions そして、Nexmo SMS APIと並んでFirestore.
あなたが行くためにいくつかの項目が必要になります-ので、瞬間を取ると、これらの両方の準備ができていることを確認します. Firebase Nexmo
最初のステップはFireBaseプロジェクトをセットアップすることです.FireBaseコンソールを使用して新しいプロジェクトを設定する手順を次に示します.
移動するFirebase console プロジェクトを追加
名前を追加して Google Analyticsをオンにし、続行をクリックします(必須ではありません) をクリックし、[プロジェクトの作成]をクリックします プロジェクトを作成するビットを待ちます 課金タイプを下に設定します⚙️ -> 使用方法と請求-詳細&設定する炎.あなたが行くプランは、サードパーティAPIを使用する必要があります.Googleとの請求に関する詳細についてはhere .
設定する
Firebaseで行う必要がありますほとんどすべてのコマンドラインから直接提供するツールセットを使用して行うことができます. NPMでFireBaseツールをインストールします
Firebaseへのログイン
FireBase関数を記述するにはいくつかの初期化作業が必要です. プロジェクトフォルダを作成する firebase関数の初期化 作成したプロジェクト名を選択します を選択 あなたが望むならば、eslintのためにYを選んでください すべての依存関係をインストールする これらのステップは、FireBase関数をビルドし、すべての依存関係をインストールするために必要なフォルダーとファイルを作成します.NPMが完了すると、
あなたが作成する最初の機能は、キャプチャし、Nexmoから着信SMSメッセージをログに記録するフックとして動作します.
The
我々は使用しているので
ファイルを保存するように書かれたコードがあるので、この関数をFireBaseに配備します.
Nexmoを設定するにはいくつかの簡単な手順があります-すべてのコマンドラインから行われます. CLIをインストールする
APIキーと秘密をダッシュボードから設定しますhttps://dashboard.nexmo.com/getting-started-guide
新しい電話番号を購入する
このコマンドは、米国で最初の利用可能な電話番号を取得します.NEXMO番号の詳細については、[数ドキュメンテーション]を見ることができますhttps://developer.nexmo.com/numbers/overview
タイプを確認し このコマンドを使用して、ウェブフックに電話番号をリンクします
携帯電話をつかむし、電話番号にメッセージを送信します.FireBaseコンソールを開き、
着信メッセージをログする方法があるので、受信メッセージで何かをする機能を書くことができます.
これまで、あなたはインバウンドSMSメッセージを取り込むためのNexmo電話番号にリンクされているFirebase機能を作成しました.FireBase機能は、データベースの更新に反応することができます.新しいエントリで、コードは元のテキストのエコーを送信します.
依存関係リストにnexmoを追加して起動します
手で電話番号だけでなく、テキストメッセージを使用すると、今何かの数を行うことができます.あなたは、キーワードに基づいて特定のデータに応答するルックアップテーブルを作成することができます、別のシステムに転送したり、我々のケースでは、元のメッセージを送信します.
コマンドラインから再びfirebase関数を展開します.
これで、このチュートリアルのすべての手順が完了しました.あなたは完全なコードを見ることができますGithub .
メッセージを送受信する最初のステップが完了した今、私の次のいくつかの記事は、この概念を取り、テキストメッセージを介して私のホームオートメーションのいくつかを制御するためにそれを展開します.私は、あなたが私に私にメッセージを送って、私に知らせさせることを計画するものを聞くのが好きです.
開発者向けのドキュメントをチェックアウトhttps://developer.nexmo.com
Nexmo SMS機能についての詳細https://developer.nexmo.com/messaging/sms/overview
Firebase関数から始めるhttps://firebase.google.com/docs/functions/get-started
郵便Send and Receive SMS Messages with Firebase Functions 最初に現れたNexmo Developer Blog .
始める前に
あなたが行くためにいくつかの項目が必要になります-ので、瞬間を取ると、これらの両方の準備ができていることを確認します.
Firebaseの設定
最初のステップはFireBaseプロジェクトをセットアップすることです.FireBaseコンソールを使用して新しいプロジェクトを設定する手順を次に示します.
FireBaseプロジェクトを作成する
Google Cloud Platform (GCP) resource location
イン⚙️ -> Project Settings
Firebaseツールのインストール
Firebaseで行う必要がありますほとんどすべてのコマンドラインから直接提供するツールセットを使用して行うことができます.
npm install -g firebase-tools
firebase login
. ログインプロセスは認証用ブラウザを開きます.ローカル環境の設定
FireBase関数を記述するにはいくつかの初期化作業が必要です.
mkdir nexmo-project && cd nexmo-project
firebase init functions
######## #### ######## ######## ######## ### ###### ########
## ## ## ## ## ## ## ## ## ## ##
###### ## ######## ###### ######## ######### ###### ######
## ## ## ## ## ## ## ## ## ## ##
## #### ## ## ######## ######## ## ## ###### ########
You're about to initialize a Firebase project in this directory:
/your_folders/your-project-name
=== Project Setup
First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add,
but for now, we'll just set up a default project.
? Please select an option: (Use arrow keys)
❯ Use an existing project
Create a new project
Add Firebase to an existing Google Cloud Platform project
Don't set up a default project
既にダッシュボードにプロジェクトを作成したので、選択できますUse an existing project
これは、希望するプロジェクトを選択するプロンプトが表示されます.あなたがこれをしなかったならばCreate a new project
そして、それを作成するユニークな名前を与えます.あなたはまだ場所と請求を更新するコンソールに行く必要がありますが、FireBaseプロジェクトを作成する別のオプションです.functions
ディレクトリとオープンindex.js
お気に入りのエディタでコードを追加を開始します.最初の関数
あなたが作成する最初の機能は、キャプチャし、Nexmoから着信SMSメッセージをログに記録するフックとして動作します.
The
index.js
ファイルには、必要なコードがいくつかあります.すべてを削除し、次のコードを追加するには、先頭に開始します.const functions = require('firebase-functions');
const admin = require('firebase-admin');
// Initialize Firebase app for database access
admin.initializeApp();
呼び出しadmin.initializeApp();
関数を読み込み、FireBaseリアルタイムデータベースに書き込むことができます.次に、次のメソッドを使用して関数を作成します.// This function will serve as the webhook for incoming SMS messages,
// and will log the message into the Firebase Realtime Database
exports.inboundSMS = functions.https.onRequest(async (req, res) => {
await admin.database().ref('/msgq').push(req.body);
res.send(200);
});
The inboundSMS
メソッドはHTTPSリクエストをリッスンします.firebase関数はreq.body
そして、/msgq
ログとしてのリアルタイムデータベースのオブジェクト.我々は使用しているので
req.body
, WebhookはAである必要がありますPOST Method
. あなたが好むならばGET
NEXMOウェブフックのための方法req.query
, とgetメソッドは同じように動作します.ファイルを保存するように書かれたコードがあるので、この関数をFireBaseに配備します.
firebase deploy --only functions
=== Deploying to 'nexmo-project'...
i deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run lint
> functions@ lint /Users/kellyjandrews/Google Drive/Apps/nexmo-project/functions
> eslint .
✔ functions: Finished running predeploy script.
i functions: ensuring necessary APIs are enabled...
✔ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...
i functions: packaged functions (38.78 KB) for uploading
✔ functions: functions folder uploaded successfully
i functions: creating Node.js 8 function inboundSMS(us-central1)...
✔ functions[inboundSMS(us-central1)]: Successful create operation.
Function URL (inboundSMS): https://us-central1-nexmo-project.cloudfunctions.net/inboundSMS
✔ Deploy complete!
Project Console: https://console.firebase.google.com/project/nexmo-project/overview
出力からの重要な部分はFunction URL (inboundSMS)
. このURLはNEXMOのウェブフックをセットアップする必要があります.NEXMOの設定
Nexmoを設定するにはいくつかの簡単な手順があります-すべてのコマンドラインから行われます.
npm install -g nexmo-cli
nexmo number:buy --country_code US
nexmo link:sms YOUR_NUMBER YOUR_FUNCTION_URL
メッセージを取得していることを確認するには、新しい関数をテストし、完全に提供するために数秒のプロセスを与えます.携帯電話をつかむし、電話番号にメッセージを送信します.FireBaseコンソールを開き、
database
ページを参照してください.着信メッセージをログする方法があるので、受信メッセージで何かをする機能を書くことができます.
送信関数の作成
これまで、あなたはインバウンドSMSメッセージを取り込むためのNexmo電話番号にリンクされているFirebase機能を作成しました.FireBase機能は、データベースの更新に反応することができます.新しいエントリで、コードは元のテキストのエコーを送信します.
依存関係リストにnexmoを追加して起動します
functions
ディレクトリnpm i nexmo --save
FireBase設定に次の環境変数を追加しますfirebase functions:config:set nexmo.api_key="YOUR_KEY" nexmo.api_secret="YOUR_SECRET"
次はオープンindex.js
追加nexmo
先頭の要件に、環境変数をインポートしてnexmoを初期化します.const functions = require('firebase-functions');
const admin = require('firebase-admin');
const Nexmo = require('nexmo');
// Initialize Firebase app for database access
admin.initializeApp();
// get Firebase environment variables for Nexmo
const {
api_key,
api_secret
} = functions.config().nexmo;
// Initialize Nexmo with application credentials
const nexmo = new Nexmo({
apiKey: api_key,
apiSecret: api_secret
});
これで、FireBaseのレスポンスを送信するための新しい関数を作成できます.// This function listens for updates to the Firebase Realtime Database
// and sends a message back to the original sender
exports.sendSMS = functions.database.ref('/msgq/{pushId}')
.onCreate((message) => {
const { msisdn, text, to } = message.val();
// the incoming object - 'msisdn' is the your phone number, and 'to' is the Nexmo number
// nexmo.message.sendSms(to, msisdn, text);
return nexmo.message.sendSms(to, msisdn, `You sent the following text: ${text}`, (err, res) => {
if (err) {
console.log(err);
} else {
if (res.messages[0]['status'] === "0") {
console.log("Message sent successfully.");
} else {
console.log(`Message failed with error: ${res.messages[0]['error-text']}`);
}
}
})
});
新しい機能は、新しいメッセージを監視します/msgq
データベースオブジェクト.トリガされると、完全なnexmoオブジェクトはmessage
. このオブジェクトはmsisdn
, これは発信元電話番号です-この場合、あなたのto
番号は、あなたが購入したNexmo仮想番号です.手で電話番号だけでなく、テキストメッセージを使用すると、今何かの数を行うことができます.あなたは、キーワードに基づいて特定のデータに応答するルックアップテーブルを作成することができます、別のシステムに転送したり、我々のケースでは、元のメッセージを送信します.
コマンドラインから再びfirebase関数を展開します.
firebase deploy --only functions
グラブあなたの携帯電話、別のメッセージを送信し、あなたは何かのように見える応答バックを取得する必要がありますYou sent the following text: Test message
.包む
これで、このチュートリアルのすべての手順が完了しました.あなたは完全なコードを見ることができますGithub .
メッセージを送受信する最初のステップが完了した今、私の次のいくつかの記事は、この概念を取り、テキストメッセージを介して私のホームオートメーションのいくつかを制御するためにそれを展開します.私は、あなたが私に私にメッセージを送って、私に知らせさせることを計画するものを聞くのが好きです.
更なる読書
Reference
この問題について(送信し、ノード、nexmo、およびfirebase関数でSMSメッセージを受信する), 我々は、より多くの情報をここで見つけました https://dev.to/vonagedev/send-and-receive-sms-messages-with-node-nexmo-and-firebase-functions-k30テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol