
シェア:
オープンなウェブとテクノロジー?HTML5、JavaScript、Node.js。猫ハック、Internet of Blings✨(LEDの点滅より少し多い)。サンフランシスコ、Vonageの元デベロッパー・アドボケイト。
Node.js、Express、Vonage SMS APIでSMSメッセージを受信する
このチュートリアルは、Vonage SMS API、Node.js、Expressを使用して作成しました。
前回の記事では、Vonageアカウントをセットアップし、Node jsでSMSメッセージを送信する方法を学びました。 Node.jsでSMSメッセージを送信する方法を学びました。.このブログ記事では、Node.js で Webhook エンドポイントを実装して、受信 SMS を受信する方法について学びます。 エクスプレス.
Webhookエンドポイントの定義
VonageからSMSメッセージを受信するには、Webhookエンドポイント(URL)をVonageからレンタルしたバーチャル番号に関連付ける必要があります。 インバウンドメッセージは、Webhookエンドポイントに送信されます。
ウェブフック・エンドポイントを開発している間、進行中の作業をデプロイし続けるのは面倒だ。もっと簡単にするために ngrokを使って、ローカルマシンのウェブフックエンドポイントをパブリックURLとして公開しましょう!
ngrokの使用
まず、次のサイトから ngrok をダウンロードします。 https://ngrok.com.インストールしたら、ターミナルでngrokを実行する:
running ngrok
あなたのローカルサーバー(localhost:3000)には、次のようなngrok URLがあります。 https://71f03962.ngrok.ioのような ngrok URL を持つようになり、開発中の Webhook エンドポイントとして使用できます。また、Web Interface URL に注目してください。ここでリクエストを検査、修正、再生できます!
VonageでWebhookエンドポイントを設定する
Vonageアカウントにサインインし、次のページに進みます。 設定で SMS設定セクションを見つけます。
VonageにはSMSメッセージを送受信できるAPIが2種類あります。受信するウェブフックのフォーマットが変わってしまうので、一度に1つしか使えません。今回は SMS APIが選択されていることを確認してください。
次に 受信SMSウェブフックフィールドにngrok URLとルート(ここでは "inbound "と呼ぶ)を入力します。入力 https://YOUR_NGROK_URL/inboundを入力し HTTPメソッドを POSTを設定し 変更を保存.
setting your webhook endpoint
では、Node.jsとExpressを使ってコードを書いてみよう!
注:上記では、アカウントレベルで SMS 用の Webhook エンドポイントを設定しています。また、各仮想番号に固有のWebhookエンドポイントを設定するには、次のボタンをクリックします。 管理をクリックします。 をクリックして、各仮想番号に固有のWebhookエンドポイントを設定することもできます。をクリックします。
ExpressでWebhookエンドポイントを書く
次に POSTリクエストを エクスプレスを使うので、それをインストールする。
追加 "type": "module"を追加します。 package.jsonファイルに追加する。 インポートステートメントを追加します。
ファイルを作成し .jsファイルを作成し、Expressをインスタンス化し、ポート3000でリッスンする。ngrokをexposeに設定しているため、同じポートを使用しなければならない。 localhost:3000に設定しているため、同じポートに固執する必要があります。
import express from 'express';
const { json, urlencoded } = express;
const app = express();
app.use(json());
app.use(
urlencoded({
extended: true
})
);
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Server listening at http://localhost:${PORT}`);
});
次に、リクエストを処理するHTTP POSTルートを作成する:
app.post('/inbound', (req, res) => {
handleParams(req.body, res);
});
次に handleParams関数を定義する:
function handleParams(params, res) {
if (!params.to || !params.msisdn) {
console.log('This is not a valid inbound SMS message!');
} else {
let incomingData = {
messageId: params.messageId,
from: params.msisdn,
text: params.text,
type: params.type,
timestamp: params['message-timestamp']
};
console.log('Success', incomingData);
}
res.status(200).end();
}ノードコードを実行し、携帯電話からバーチャル番号にメッセージを送信してみてください!
screenshot of a user sending an sms message from an Android phone
ローカルアプリを ngrok でトンネリングしている場合、リクエストの検査は http://127.0.0.1:4040/にあるリクエストも検査できます:
ngrok inspector
これで、SMSメッセージが送信されたことが確認できます。Vonageはメッセージを受信し、Webhook経由でExpressアプリケーションに渡しました!
お役に立ちましたか?お知らせください ツイッターで @VonageDev.