前提条件の設定
このチュートリアルを始める前に、いくつかの前提条件をクリアしておく必要があります。すでに完了している場合は、このステップをスキップしてください。
でVonageアカウントを作成できます。 ダッシュボード.
ダッシュボードでは、アプリケーションの作成やVonage Numbersの購入ができます。また Vonage CLI.
アプリケーションの作成、Vonage Numbersの購入などのタスクを実行したい場合は、Vonage CLIをインストールする必要があります。Vonage CLIには以下が必要です。 node.js が必要です。 インストール node.js 第一に
念のため node.js がインストールされている場合は、ターミナルで以下のコマンドを実行してください:
の手順に従ってください。 Vonage CLIを始める ページで コマンドラインをインストールして設定する。
JavaScriptを使用してアプリケーションを開発する場合は、Vonage Node Server SDKのベータ版をインストール(またはアップデート)する必要があります。
インストール
ベータ期間中、Node Server SDKは以下の方法でインストールできます:
すでにサーバーSDKがインストールされている場合、上記のコマンドを実行すると、サーバーSDKが最新バージョンにアップグレードされます。
使用方法
サーバーSDKを使用する場合は、以下の情報が必要です:
| キー | 説明 |
|---|---|
NEXMO_API_KEY | VonageのAPIキーは、以下のものから取得できます。 ダッシュボード. |
NEXMO_API_SECRET | Vonage APIシークレットは、お客様の ダッシュボード. |
NEXMO_APPLICATION_ID | VonageアプリケーションのアプリケーションID。 ダッシュボード. |
NEXMO_APPLICATION_PRIVATE_KEY_PATH | へのパス。 private.key ファイルは、Vonage Applications の作成時に生成されたものです。 |
これらの変数は、Server SDKのサンプルコードで実際の値に置き換えることができます。
アプリケーションの作成
Messages and Dispatchアプリケーションを作成するには、2つの方法があります:
- Vonage CLIの使用
- ダッシュボードの使用
それぞれの方法については、以下のセクションで説明する。
Vonage CLIを使用したMessages and Dispatchアプリケーションの作成方法
Vonage CLIを使用してアプリケーションを作成するには、シェルに次のコマンドを入力します:
これにより、メッセージ付きのVonageアプリケーションが作成されます。 能力WebhookのURLを指定通りに設定し、秘密鍵ファイルを生成する。 my_messages_app.key を作成/更新する。 vonage_app.json.
ダッシュボードを使ったメッセージとディスパッチアプリケーションの作成方法
メッセージとディスパッチアプリケーションは ダッシュボード.
ダッシュボードを使用してアプリケーションを作成します:
アンダー Applications をクリックします。 新規アプリケーションの作成 ボタンをクリックする。
アンダー 名称アプリケーション名を入力します。後で参照しやすいように名前を決めてください。
ボタンをクリックする 公開鍵と秘密鍵の生成.これで公開鍵と秘密鍵のペアが作成され、秘密鍵はブラウザからダウンロードされる。
アンダー 能力 を選択する。 メッセージ ボタンをクリックする。
の中で インバウンドURL ボックスに、受信メッセージ・ウェブフックのURLを入力します、
https://example.com/webhooks/inbound-message.の中で ステータスURL ボックスに、メッセージ・ステータスWebhookのURLを入力します、
https://example.com/webhooks/message-status.をクリックする。 新規アプリケーションの作成 ボタンをクリックします。アプリケーション作成手順の次のステップに進み、Vonage番号をアプリケーションにリンクしたり、Facebookなどの外部アカウントをこのアプリケーションにリンクしたりできます。
このアプリケーションをリンクさせたい外部アカウントがある場合は、そのアカウントをクリックします。 リンクされた外部アカウント タブをクリックし、対応する リンク ボタンをクリックします。
これでアプリケーションの作成は完了です。
注: アプリケーションをテストする前に、Webhookが設定され、Webhookサーバーが動作していることを確認してください。
設定しなければならないウェブフックが少なくとも2つある:
- メッセージ・ステータス
- インバウンド・メッセージ・ウェブフック
などのメッセージのステータス更新が発生した場合 delivered, rejected または acceptedコールバックは メッセージステータス ウェブフックのURL。
受信メッセージを受け取ると、メッセージペイロードを持つコールバックが インバウンドメッセージ ウェブフックのURL。
重要: 両方の Webhook URL を設定する必要があります。少なくとも、WebhookハンドラはInbound MessageとMessage Statusの両方のコールバックに対して200レスポンスを返す必要があります。
ウェブフックURLを設定するには
ヒント Vonage Accountのメッセージ用Webhook URLがすでに実運用に使用されており、Messages APIを使用するための2つ目のURLが必要な場合は、次のメールアドレスにご連絡ください。 サポート サブAPIキーを要求する。
WebhookのURLを以下の欄に入力してください。 ステータスURL そして インバウンドURL.
Webhook URL に入力する値は、Webhook サーバーがどこにあるかなどによって異なります:
| ウェブフック | URL |
|---|---|
| ステータスURL | https://www.example.com/webhooks/message-status |
| インバウンドURL | https://www.example.com/webhooks/inbound-message |
注: のデフォルト・メソッドは POST は、両方のウェブフックURLに使用する必要があります。
インバウンドSMSウェブフック
注: の使用を推奨する。 JWTベースの認証 で受信と配信のウェブフックURLを設定することができます。 アプリケーションレベル.そうでなければ、異なるアプリケーションからのすべてのコールバックは、あなたの アカウントレベルのウェブフックURL.
ウェブフックキュー
メッセージステータスWebhook URLやインバウンドメッセージURLなど、Vonageから発信されるWebhookは、メッセージごとにVonageによってキューに入れられることにご注意ください。
すべてのアプリケーションが200レスポンスでWebhookを認識するようにしてください。
署名入りウェブフック
ウェブフックの発信元を検証するには、ウェブフックの署名を検証することができます。 これ
このコード・スニペットでは、インバウンド・メッセージを処理する方法を学びます。
注: の使用を推奨する。 JWTベースの認証 で受信と配信のウェブフックURLを設定することができます。 アプリケーションレベル.そうでなければ、異なるアプリケーションからのすべてのコールバックは、あなたの アカウントレベルのウェブフックURL.
例
あなたのインバウンドメッセージが ウェブフックが設定されている を使用してください。 不必要なコールバックのキューイングを避けるため、ハンドラは最低限 200 ステータスコードを返す必要があります。メッセージアプリケーションをテストする前に、Webhook サーバーが動作していることを確認してください。
Prerequisites
npm install express body-parserWrite the code
Add the following to inbound-message.js:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/webhooks/inbound-message', (req, res) => {
console.log(req.body);
res.status(200).end();
});
app.listen(3000);
Run your code
Save this file to your machine and run it:
Prerequisites
pip install fastapi[standard]Write the code
Add the following to webhook-server.py:
from pprint import pprint
from fastapi import FastAPI, Request, status
app = FastAPI()
@app.post('/webhooks/message-status', status_code=status.HTTP_200_OK)
async def message_status(request: Request):
data = await request.json()
pprint(data)
@app.post('/webhooks/inbound-message')
async def inbound_message(request: Request):
data = await request.json()
pprint(data)Run your code
Save this file to your machine and run it:
アプリケーションをローカルでテストしたい場合は、Ngrokを使うことができる。
に関する情報をご覧ください。 地域開発のためのングロク活用
この方法でNgrokを使用する場合は、Webhook URLにNgrok URLを使用します:
https://abcdef1.ngrok.io/webhooks/inbound-messagehttps://abcdef1.ngrok.io/webhooks/message-status
フェイルオーバーでFacebookメッセージを送信する
Dispatch API は、セカンダリチャネルへのフェイルオーバー機能を持つメッセージワークフローを作成する機能を提供します。このタスクでは、Dispatch API を使って SMS チャンネルにフェイルオーバーした Facebook メッセージを送信してみます。