Empfangen einer SMS

Um eine SMS zu empfangen, müssen Sie:

Voraussetzungen

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 ReceiveMessage Folgendes hinzu:

embeddedServer(Netty, port = 8000) {
    routing {
        route("/webhooks/inbound-sms") {
            handle {
                if (call.request.contentType().equals("application/x-www-form-urlencoded")) {
                    println("msisdn: ${call.request.queryParameters["msisdn"]}")
                    println("messageId: ${call.request.queryParameters["messageId"]}")
                    println("text: ${call.request.queryParameters["text"]}")
                    println("type: ${call.request.queryParameters["type"]}")
                    println("keyword: ${call.request.queryParameters["keyword"]}")
                    println("messageTimestamp: ${call.request.queryParameters["messageTimestamp"]}")
                }
                else {
                    val messageEvent = MessageEvent.fromJson(call.receive())
                    println(messageEvent.toJson())
                }
                call.respond(204)
            }
        }
    }
}.start(wait = true)

Vollständige Quelle anzeigen

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.sms durch das Paket, das ReceiveMessage enthält:

gradle run -Pmain=com.vonage.quickstart.kt.sms.ReceiveMessage

Konfigurieren Sie den Webhook-Endpunkt in Ihrem Vonage Dashboard

Damit Vonage weiß, wie Sie auf Ihren Webhook zugreifen können, müssen Sie ihn in Ihrem Vonage Account konfigurieren.

In den Codeschnipseln befindet sich der Webhook unter /webhooks/inbound-sms. Wenn Sie Ngrok verwenden, müssen Sie den Webhook in Ihrem Vonage Dashboard API-Einstellungen Seite ist von der Form https://demo.ngrok.io/webhooks/inbound-sms. Ersetzen Sie demo mit der von Ngrok bereitgestellten Subdomain und geben Sie Ihren Endpunkt in das Feld mit der Bezeichnung Webhook-URL für eingehende Nachricht:

Probieren Sie es aus

Wenn Sie nun eine SMS an Ihre Vonage-Nummer senden, sollten Sie diese in Ihrer Konsole protokolliert sehen. Das Nachrichtenobjekt enthält die folgenden Eigenschaften:

{
  "msisdn": "447700900001",
  "to": "447700900000",
  "messageId": "0A0000000123ABCD1",
  "text": "Hello world",
  "type": "text",
  "keyword": "Hello",
  "message-timestamp": "2020-01-01T12:00:00.000+00:00",
  "timestamp": "1578787200",
  "nonce": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "concat": "true",
  "concat-ref": "1",
  "concat-total": "3",
  "concat-part": "2",
  "data": "abc123",
  "udh": "abc123"
}