https://a.storyblok.com/f/270183/170758/30ab309017/send-sms-messages-node-red.png

Node-REDでSMSメッセージを送信する方法

最終更新日 November 8, 2020

所要時間:3 分

注:この記事で説明されているツールや方法の中には、サポートが終了しているものや最新のものではないものもあります。最新の内容やサポートについては 最新記事または ドキュメンテーション

この記事は「VonageとNode-REDを始める」チュートリアルシリーズの第1回目です。

Vonage SMS APIを使用すると、シンプルなHTTPベースのAPIを使用して、世界中でSMSを送受信することができます。

朗報は、Node-REDパレットにNexmoノードが追加されたことで、このAPIや他の多くのAPIとのやり取りが簡単になったことだ。

この記事では、Node-REDでSMSメッセージを送信する方法を学びます。このフローは Node-REDライブラリからこのフローを入手するか、またはそれに従ってください。

前提条件

始める前に必要なものがいくつかある:

資格の取得

Vonage番号をレンタルせずにSMSを送信できる国もありますが、アメリカのようにSMSメッセージの発信元番号を所有する必要がある国もあります。

Node-REDエディタのセットアップ

まず インストールする必要があります。をインストールする必要がある。これは、ローカルマシン、シングルボードコンピュータ(Raspberry Piなど)、またはクラウドホスティングのいずれかの方法で行うことができます。この例ではローカルマシンを使いますので、Node-REDをグローバルにインストールしたら、ターミナルに以下のコマンドを入力してください。

node-red

Node-REDエディタにアクセスするには、ブラウザの http://localhost:1880.

エディタを開いたら、Nexmoノードをインストールする必要があります。インストールは パレットの管理メニューから node-red-contrib-nexmoパッケージを検索し、インストールをクリックします。

Install the Nexmo Node-RED packageInstall the Nexmo Node-RED package

これで、画面の左側に、デフォルトのノードに混じって、Nexmoのノードがすべて表示されるはずです。

Node-REDでSMSを送信する

その sendsmsノードまでスクロールし、それをワークスペースにドラッグする。これが今日のチュートリアルで重要な役割を果たします。

このノードをダブルクリックし、以下のパラメータを入力することで設定できます。以下の API KEYAPI SECRETの横にある編集ボタンをクリックしてください。 Nexmo Credentials.

キー

説明

API KEY

APIキーは アカウント概要.

API SECRET

あなたのAPIシークレットは アカウント概要.

TO

E.164形式でSMSを送信する番号。例:447401234567

FROM

メッセージを表示する際に携帯電話に表示される番号またはテキスト。あなたは、この機能がサポートされている場合、あなたのブランドをよりよく表すために、カスタム英数字FROMを設定することができます あなたの国でサポートされている場合.

TEXT

メッセージの内容。自由に創造してください。'Hello World!'でもかまいません。

次に、フローに injectの入力として配線する。 sendsms.

これは非常に強力なもので、特定のペイロード値でフローを開始することができる。文字列、Numbers、ブーリアン、JavaScriptオブジェクト、またはフロー/グローバルコンテキスト値の注入をサポートしており、デフォルトとして1970年1月1日からのミリ秒単位の現在時刻のタイムスタンプを持っています。

ノードにすべてのパラメーターをハードコードしながら、単純にフローを開始するために使用することもできる。 sendsmsノードのすべてのパラメータをハードコードする。

の隣にある。 TO,FROMTEXTの横に {}記号があります。 の横に記号があります。がサポートされていることを意味します。これは特定の値を動的に sendsmsノードに動的に特定の値を渡すときに便利です。

タイムスタンプが注入されることを知っているので、この値をメッセージ・テキストに追加してみよう。 {{msg.payload}}例えば

Hello World! The timestamp is `{{msg.payload}}`.

SMSを送信するときに何が起こっているのかをもう少し詳しく知るには、'output'を sendsms出力を debugノードに配線してください。それをダブルクリックして Outputcomplete msg object.

ヒット デプロイをクリックし injectSMSが届くはずです!

Sending an SMS in Node-REDSending an SMS in Node-RED

SMS API へのリクエストが成功すると、SMS API はメッセージオブジェクトの配列を返します。これらのオブジェクトはそれぞれ `status` が `0` で、メッセージの送信に成功したことを示し、その他に受信者番号、メッセージ ID、残金、料金、SMS 送信に使用するキャリアネットワークなどの詳細がいくつか含まれているのが理想的です。

このレスポンスオブジェクトは、Node-REDエディタの右側にあるデバッグエリアで見ることができます。

この出力を検査することは、SMS APIが何をしたかを判断するのに非常に役立つが、メッセージが受信者の端末に届いたという保証はない。

メッセージが配信されると、携帯電話会社から 配達受領書をVonageに返送します。これには配達状況が記載されています。

移動体通信事業者からの宅配便の受領について

送信メッセージの statusアウトバウンドメッセージを確認するには、ウェブフックエンドポイントを設定する必要があります。 配信レシートに転送する必要があります。

Webhookエンドポイントの定義

まず http入力ノードを http responseノードと debugノードに接続する。

入力ノードで http入力ノードで POSTMethodとして選択し URLフィールドに /receipt.この http responseノードには 200として設定されているはずだ。 Status codeとして設定されているはずだが、これはデフォルト値でもあるので気にする必要はない。

Setting up a webhook for delivery receiptsSetting up a webhook for delivery receipts

ローカルサーバーをインターネットに公開する

次に、Vonageがアクセスできるように、ローカルサーバーをインターネットに公開する必要があります。これを行う便利な方法は、以下のようなトンネリングサービスを使うことだ。 ngrok.

ダウンロードをダウンロードし ngrokをダウンロードし、ターミナルで実行して、ポート 1880.

./ngrok http 1880

Starting an ngrok tunnel in a terminal windowStarting an ngrok tunnel in a terminal window

あなたのローカルサーバーには、Webhookのエンドポイントとして使用できるngrok URLがあります。

Vonageでエンドポイントを設定する

最後のステップは、Vonage SMS APIに配信レシートの転送先を知らせることです。これは API設定デフォルトSMS設定セクションで行います。

配信レシートのデフォルトのウェブフックURLを次のように設定します。 YOUR_NGROK_URL/receipt次に Save changes.

Delivery receipt endpoint URL in dashboardDelivery receipt endpoint URL in dashboard

これで、Node-REDエディターに戻って別のメッセージを送信すると、デバッグエリアに配信レシートが表示されます:

Delivery receipt in debug sidebarDelivery receipt in debug sidebar

その statuserr-codeパラメータはいずれもメッセージが正常に配信されたことを示します。配送受領ステータスメッセージとエラーコードの詳細については ドキュメント.

次はどこだ?

シェア:

https://a.storyblok.com/f/270183/372x373/36054b72d0/julia-biro.png
Julia Biroデベロッパー・アドボケイト

Juliaは、チュートリアル、ガイド、実用的なリソースを作成することで、仲間の開発者に力を与えることに尽力しています。アウトリーチと教育のバックグラウンドを持つ彼女は、テクノロジーをより身近なものにし、開発者の経験全体を向上させることを目指しています。地域のコミュニティイベントでもよく見かける。