https://a.storyblok.com/f/270183/1368x665/197936dc94/node-js_glitch_sms-voice.png

GlitchでSMSとVoiceを受信するためのWebhookを設定する方法

最終更新日 October 17, 2024

所要時間:1 分

このチュートリアルでは、Vonageを通信プラットフォームとして、GlitchとNode.jsサーバーを使用して、着信音声通話とSMSメッセージを処理するためのWebhookの設定方法を学びます。Webhookとは、特定のイベントが発生したときに、あるアプリケーションが別のアプリケーションにリアルタイムのデータを送信する方法です。リスナーとして動作し、着信やSMSのようなイベントを待ち、そのイベントが発生したときに事前に定義されたアクションをトリガーします。これにより、サーバーは外部トリガーに即座に反応することができ、ユーザーのインタラクションにタイムリーに対応することができます。

Webhookを実装すると、アプリケーションに大きなメリットがあります。VoiceコールやSMSメッセージのリアルタイム処理を可能にすることで、ユーザーに対してよりインタラクティブで応答性の高いコミュニケーション体験を提供できます。例えば、カスタマーサポートの応答を自動化したり、CRMシステムと統合してやりとりを記録したり、受信メッセージに基づいてワークフローをトリガーしたりできます。これにより、手作業を減らすことで、ユーザーのエンゲージメントと効率を高めることができます。

このガイドが終わる頃には、Vonageを通して着信通話とSMSメッセージをリッスンして処理する、完全に機能するウェブサーバーが出来上がっていることでしょう。それでは始めましょう!

前提条件

  • A Vonageデベロッパーアカウント

  • A グリッチアカウント

    Vonage API Account

    To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

プロジェクトの設定と構成

次のステップで説明しよう:

  1. 新しいプロジェクトを作成する。

  2. サーバーを設定します。

  3. 依存関係をインストールします。

  4. プロジェクトの共有と設定

  5. VonageアプリケーションにWebhookを統合。

  6. 新機能をテストする。

ステップ1:新規プロジェクトの作成

Glitchアカウントにログインしてください。

クリック 「新規プロジェクトをクリックし "グリッチ・ヘロ・ノード".

完了すると、新しいプロジェクトが作成されます。

Screen showing Glitch website with starter app options (including glitch-hello-node) and list of projects belowGlitch Hello Node

ステップ2:サーバーの設定

着信および発信の通話とSMSを処理するためにサーバーを設定するには、以下の手順に従ってください:

  1. 左側のペインでを見つけてクリックします。 server.js.

    IDE project folder with server.js circledserverjs file

  2. 右ペインでの内容をすべて選択し server.jsの内容をすべて選択し、削除します。

  3. 提供されたコード・スニペットをコピーしてserver.js.このコードは、インバウンド、アウトバウンドコールとSMSを処理するためのウェブリクエストを処理できるウェブサーバーを設定します。

const path = require("path");
const app = require('express')();
const bodyParser = require('body-parser');
const fastify = require("fastify")({ logger: true });

fastify.register(require("@fastify/static"), {
  root: path.join(__dirname, "public"),
  prefix: "/",
});

fastify.register(require("@fastify/formbody"));

fastify.register(require('@fastify/express')).after(() => {
  fastify.use(bodyParser.urlencoded({ extended: false })); // for Postman x-www-form-urlencoded
  fastify.use(bodyParser.json());
  fastify.use(app);
});

app.get("/webhooks/answer", function (request, reply) {
  const from = request.query.from;
  const fromSplitIntoCharacters = from.split('').join(' ');
  const ncco = [{
    action: 'talk',
    text: `Thank you for calling from ${fromSplitIntoCharacters}`,
    loop: 10
  }];
  console.log(`logging call from ${fromSplitIntoCharacters}`);
  reply.json(ncco);
});

app.get("/webhooks/inbound-sms", function (request, reply) {
  console.log(`logging incoming sms`);
  const params = Object.assign(request.query, request.body);
  console.log(params);
  reply.status(200).end();
});

app.post("/webhooks/inbound-sms", function (request, reply) {
  console.log(`logging incoming sms`);
  console.log(request.body);
  reply.status(200).end();
});

fastify.listen(
  { port: process.env.PORT, host: "0.0.0.0" },
  function (err, address) {
    if (err) {
      console.error(err);
      process.exit(1);
    }
    console.log(`Your app is listening on ${address}`);
  }
);

通話時間を長くしたい場合は、コード・スニペットの loopパラメータを探し、その値を調整する。

const ncco = [{
  action: 'talk',
  text: `Thank you for calling from ${fromSplitIntoCharacters}`,
  loop: 10
}];
console.log(`logging call from ${fromSplitIntoCharacters}`);
reply.json(ncco);

ファイルで正しいNode.jsバージョンを使用していることを確認してください。 package.jsonファイルで正しいNode.jsバージョンを使用していることを確認してください:

  1. 左ペインの package.jsonをクリックする。

  2. 右側のペインで、Node.jsのバージョンを指定する行を見つける。

  3. Node.jsのバージョンが 16.x.そうでない場合は 16.x.

"engines": {

  "node": "16.x"

}

ステップ 3: 依存関係のインストール

をクリックしてください。 「をクリックしてください。ボタンをクリックしてください。

list of tabs including status, logs, terminal, tools, and previewbutton以下のコマンドを実行して、既存のパッケージを更新する:

npm update

必要な依存関係を以下のコマンドでインストールする:

npm i express @fastify/express body-parser dotenv @vonage/server-sdk @vonage/voice

を実行します。 リフレッシュコマンドを実行する:

refresh

ステップ4:プロジェクトの共有と設定

青い "共有"右上のボタンをクリックし、リンクをコピーしてください。

お気に入りのテキストエディタを開き、先ほどコピーしたリンクを貼り付ける。次に、以下のURLを貼り付けます:

  • 回答URL {あなたのリンク}/webhooks/answer

  • 受信URL {あなたのリンク}/webhooks/inbound-sms

Screenshot of share project window with project linksShare Project

ステップ5:VonageアプリケーションにWebhookを統合する

ログイン Vonageデベロッパーアカウントにログインします。.

Vonageの電話番号を購入するには、左ペインのメニューから「Numbers」を選択します。 "Numbers "を選択します。次に "番号購入".番号を購入する国を選択します。機能」で「SMSと音声」を選択します。

クリック 検索そして 購入をクリックしてください。

左ペインのメニューから "アプリケーション"次に 「新規アプリケーションの作成" をクリックします。をクリックします。

以下の情報を申請書に追加してください:

  • アプリケーションにユーザーフレンドリーな名前を付けましょう。

  • Generate public and private key "ボタンをクリックします。秘密鍵ファイル private.keyという名前の秘密鍵ファイルがデスクトップにダウンロードされます。このファイルは後で必要になりますので、安全なフォルダに保存してください。

  • Capabilities "セクションで、トグルをオンにする:

    • Voice

    • メッセージ

  • Voice機能を設定します:

    • 回答URL:先ほどコピーしたアンサーURLを貼り付けます。

    • イベントのURL:同じアンサーURLを貼り付けます。

    • 予備のURL:同じアンサーURLを貼り付ける。

  • メッセージ機能の設定

    • インバウンドURL:先ほどコピーしたInbound URLを貼り付けます。

    • ステータスURL:同じInbound URLを貼り付ける。

  • 右下の "Generate new application "をクリックします。をクリックしてください。

Screenshot of application capabilities for voice and messages turned on with URLs for webhooks.capabilitiesアプリケーションが作成されたら、「リンク」をクリックして、購入した番号をアプリケーションにリンクします。 「リンクボタンをクリックします。リンクされたVonage番号をコピーして保存してください。

Link numbers tab with phone numbers listed, their type, features, state, and manage (show what applications they are linked to)link number左側のペインで "API設定"をクリックし "Messages API" を選択します。を選択し、変更を保存します。

ステップ6:新機能をテストする。

これで、次のためにウェブフックを統合した。 インバウンドボイスコールテストしてみましょう!

  1. 携帯電話からVonage番号に音声通話をかける。

  2. 接続すると、"Thank you for calling from... "のようなプロンプトが表示されます。

  3. Vonage Dashboardに移動し、左側のパネルで以下をクリックします。 ログ.ここで、通話が正常に受信されたことを確認できます。

Call log showing call information including Call ID, direction (inbound) from phone number, to phone number, network, country, and the time and date the call started.Inbound Call Log通話時間を長くしたい場合は、「loop」パラメータの値を変更してください。

これで インバウンドSMSをテストしてみましょう!

  1. 任意の番号からVonage番号にSMSを送信します。

  2. Vonage Dashboardに移動し、左側のパネルで以下をクリックします。 ログ.ここで、テストが正常に受信されたことを確認できます。

SMS log showing message ID & API Key, from number, to number, network and body (the text sent)SMS log

結論

そして、それだけだ!Webhookをセットアップするだけで、これらの通信をリアルタイムで管理できる。あなたのアプリケーションは、インバウンドイベントが発生したときに応答できるようになりました。アウトバウンドボイスコールとアウトバウンドSMSのクライアントコードを追加する方法と、アウトバウンドボイスコールを発信し、アウトバウンドSMSを送信する方法についてのチュートリアルに従えば、このアプリケーションをさらに拡張することができます。このチュートリアルに従ったプロジェクトについて、ぜひお聞かせください!私たちの VonageコミュニティSlackまたは X以前はTwitterとして知られていました。

シェア:

https://a.storyblok.com/f/270183/413x531/a88af5f9b0/prashant-photo-highres.png
Prashant Agrawal テクニカル・アカウント・マネージャー

プラシャントはVonageのAPIパートナー・セールス・チームのメンバーです。シンガポール在住。顧客とパートナーがVonage CPaaSの機能をビジネスに活用できるようにするための活動を推進している。余暇には、風光明媚な島をサイクリングしたり、バドミントンの試合で汗を流したりしています。