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-parserSchreiben 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);Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
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)Führen Sie Ihren Code aus
Wir können das Applikation 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:
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);Führen Sie Ihren Code aus
Wir können das Applikation 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:
Voraussetzungen
Wenn Sie keine Bewerbung haben, können Sie einen erstellen aufrufen. Stellen Sie sicher, dass Sie auch Ihre Webhooks konfigurieren.
composer require vonage/clientErstellen Sie eine Datei mit dem Namen inbound-message.php und fügen Sie den folgenden Code hinzu:
Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
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)Führen Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Voraussetzungen
Wenn Sie keine Bewerbung haben, können Sie einen erstellen aufrufen. Stellen Sie sicher, dass Sie auch Ihre Webhooks konfigurieren.
gem install sintatraFühren Sie Ihren Code aus
Speichern Sie diese Datei auf Ihrem Rechner und führen Sie sie aus:
Probieren Sie es aus
Der Webhook wird beim Empfang eines eingehende Nachricht und die Details und Daten der Nachricht werden auf der Konsole ausgegeben.