インバウンド・メッセージ・ウェブフック
このコード・スニペットでは、受信メッセージ・ウェブフックを使って受信メッセージを受け取る方法を学びます。
注: の使用を推奨する。 JWTベースの認証 で受信と配信のウェブフックURLを設定することができます。 アプリケーションレベル.そうでなければ、異なるアプリケーションからのすべてのコールバックは、あなたの アカウントレベルのウェブフックURL.
注: Messages API は以下をサポートしています。 署名入りウェブフック これにより、リクエストがVonageから来たものであり、そのペイロードが転送中に改ざんされていないことを確認できます。
例
あなたのインバウンドメッセージが ウェブフックが設定されている を使用してください。 不必要なコールバックのキューイングを避けるため、ハンドラは最低限 200 ステータスコードを返す必要があります。メッセージアプリケーションをテストする前に、Webhook サーバーが動作していることを確認してください。
コードを書く
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);コードを実行する
このファイルをあなたのマシンに保存し、実行する:
前提条件
コードを書く
IncomingMessage ファイルのmain メソッドに以下を追加する:
embeddedServer(Netty, port = 8000) {
routing {
post ("/webhooks/inbound-message") {
val messageDetails = InboundMessage.fromJson(call.receive())
println("Message ID "+messageDetails.getMessageUuid()+" of type " +
messageDetails.getMessageType()+" was sent from " +
messageDetails.getFrom()+" to "+messageDetails.getTo()+" via "+
messageDetails.getChannel()+" at "+messageDetails.getTimestamp()
)
call.respondText("OK")
}
}
}.start(wait = true)コードを実行する
Gradle用のアプリケーション プラグインを使うことで、アプリケーションの実行を簡単にすることができます。build.gradle を以下のように更新する:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''以下のgradle コマンドを実行し、com.vonage.quickstart.kt.messages をIncomingMessage を含むパッケージに置き換えてアプリケーションを実行する:
前提条件
コードを書く
IncomingMessage ファイルのmain メソッドに以下を追加する:
Route inboundRoute = (request, response) -> {
InboundMessage messageDetails = InboundMessage.fromJson(request.body());
System.out.println(
"Message ID "+messageDetails.getMessageUuid()+" of type " +
messageDetails.getMessageType()+" was sent from " +
messageDetails.getFrom()+" to "+messageDetails.getTo()+" via "+
messageDetails.getChannel()+" at "+messageDetails.getTimestamp()
);
return "OK";
};
Spark.port(3000);
Spark.post("/webhooks/inbound-message", inboundRoute);コードを実行する
Gradle用のアプリケーション プラグインを使うことで、アプリケーションの実行を簡単にすることができます。build.gradle を以下のように更新する:
apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''以下のgradle コマンドを実行し、com.vonage.quickstart.messages をIncomingMessage を含むパッケージに置き換えてアプリケーションを実行する:
前提条件
composer require vonage/clientinbound-message.php という名前のファイルを作成し、以下のコードを追加する:
$keypair = new \Vonage\Client\Credentials\Keypair(
file_get_contents(VONAGE_APPLICATION_PRIVATE_KEY_PATH),
VONAGE_APPLICATION_ID
);
$client = new \Vonage\Client($keypair);コードを書く
inbound-message.php に以下を追加する:
$json = file_get_contents('php://input');
$data = json_decode($json, true);
$incomingWebhookMessage = \Vonage\Messages\Webhook\Factory::createFromArray($data);コードを実行する
このファイルをあなたのマシンに保存し、実行する:
コードを書く
inbound-message.py に以下を追加する:
from pprint import pprint
from fastapi import FastAPI, Request
app = FastAPI()
@app.post('/webhooks/inbound-message')
async def inbound_message(request: Request):
data = await request.json()
pprint(data)コードを実行する
このファイルをあなたのマシンに保存し、実行する:
コードを書く
inbound-message.rb に以下を追加する:
require 'sinatra'
require 'json'
post "/webhooks/messages/inbound" do
payload = JSON.parse(request.body.read)
puts "Received inbound message webhook:\n#{payload}\n\n"
status 200
status 200
end
set :port, 3000コードを実行する
このファイルをあなたのマシンに保存し、実行する:
試してみる
を受信すると、Webhook が起動します。 インバウンドメッセージ メッセージの詳細とデータはコンソールにプリントされる。