Webhook für eingehende Nachrichten

In diesem Codeschnipsel erfahren Sie, wie Sie eine eingehende Nachricht mit dem Webhook für eingehende Nachrichten empfangen können.

HINWEIS: Wir empfehlen die Verwendung von JWT-basierte Autorisierung denn so können Sie Ihre Webhook-URLs für eingehende und ausgehende Lieferungen auf der Anwendungsebene. Andernfalls werden alle Rückrufe aus Ihren verschiedenen Applications an Ihre Webhook-URLs auf Account-Ebene.

HINWEIS: Messages API unterstützt signierte Webhooks Damit können Sie verifizieren, dass eine Anfrage von Vonage kommt und die Nutzdaten während der Übertragung nicht manipuliert wurden.

Beispiel

Stellen Sie sicher, dass Ihre eingehende Nachricht Webhook ist eingestellt auf dem Dashboard. Ihr Handler muss mindestens einen Statuscode 200 zurückgeben, um unnötige Warteschlangen für Rückrufe zu vermeiden. Vergewissern Sie sich, dass Ihr Webhook-Server läuft, bevor Sie Ihre Messages-Anwendung testen.

Voraussetzungen

Wenn Sie keine Bewerbung haben, können Sie einen erstellen aufrufen. Stellen Sie sicher, dass Sie auch Ihre Webhooks konfigurieren.

npm install express body-parser

Schreiben Sie den Code

Fügen Sie Folgendes zu inbound-message.js hinzu:

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);

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:

node inbound-message.js

Voraussetzungen

Wenn Sie keine Bewerbung haben, können Sie einen erstellen aufrufen. Stellen Sie sicher, dass Sie auch Ihre Webhooks konfigurieren.

Fügen Sie Folgendes zu build.gradle hinzu:

implementation 'com.vonage:server-sdk-kotlin:2.1.1'
implementation 'io.ktor:ktor-server-netty'
implementation 'io.ktor:ktor-serialization-jackson'

Schreiben Sie den Code

Fügen Sie der Methode main in der Datei IncomingMessage Folgendes hinzu:

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)

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

Wir können das Anmeldung Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.kt.messages durch das Paket, das IncomingMessage enthält:

gradle run -Pmain=com.vonage.quickstart.kt.messages.IncomingMessage

Voraussetzungen

Wenn Sie keine Bewerbung haben, können Sie einen erstellen aufrufen. Stellen Sie sicher, dass Sie auch Ihre Webhooks konfigurieren.

Fügen Sie Folgendes zu build.gradle hinzu:

implementation 'com.vonage:server-sdk:9.3.1'
implementation 'com.sparkjava:spark-core:2.9.4'

Schreiben Sie den Code

Fügen Sie der Methode main in der Datei IncomingMessage Folgendes hinzu:

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);

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

Wir können das Anmeldung Plugin für Gradle verwenden, um die Ausführung unserer Anwendung zu vereinfachen. Aktualisieren Sie Ihre build.gradle mit dem Folgenden:

apply plugin: 'application'
mainClassName = project.hasProperty('main') ? project.getProperty('main') : ''

Führen Sie den folgenden Befehl gradle aus, um Ihre Anwendung auszuführen, und ersetzen Sie dabei com.vonage.quickstart.messages durch das Paket, das IncomingMessage enthält:

gradle run -Pmain=com.vonage.quickstart.messages.IncomingMessage

Voraussetzungen

Wenn Sie keine Bewerbung haben, können Sie einen erstellen aufrufen. Stellen Sie sicher, dass Sie auch Ihre Webhooks konfigurieren.

composer require vonage/client

Erstellen Sie eine Datei mit dem Namen inbound-message.php und fügen Sie den folgenden Code hinzu:

$keypair = new \Vonage\Client\Credentials\Keypair(
    file_get_contents(VONAGE_APPLICATION_PRIVATE_KEY_PATH),
    VONAGE_APPLICATION_ID
);

$client = new \Vonage\Client($keypair);

Vollständige Quelle anzeigen

Schreiben Sie den Code

Fügen Sie Folgendes zu inbound-message.php hinzu:

$json = file_get_contents('php://input');
$data = json_decode($json, true);

$incomingWebhookMessage = \Vonage\Messages\Webhook\Factory::createFromArray($data);

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:

php inbound-message.php

Voraussetzungen

Wenn Sie keine Bewerbung haben, können Sie einen erstellen aufrufen. Stellen Sie sicher, dass Sie auch Ihre Webhooks konfigurieren.

pip install fastapi[standard]

Schreiben Sie den Code

Fügen Sie Folgendes zu inbound-message.py hinzu:

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)

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:

fastapi dev messages/inbound-message.py

Voraussetzungen

Wenn Sie keine Bewerbung haben, können Sie einen erstellen aufrufen. Stellen Sie sicher, dass Sie auch Ihre Webhooks konfigurieren.

gem install sintatra

Schreiben Sie den Code

Fügen Sie Folgendes zu inbound-message.rb hinzu:

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

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:

ruby inbound-message.rb

Probieren Sie es aus

Der Webhook wird beim Empfang eines eingehende Nachricht und die Details und Daten der Nachricht werden auf der Konsole ausgegeben.