Schaltfläche zum Senden einer Schnellantwort

In diesem Codeschnipsel erfahren Sie, wie Sie eine Schaltfläche im Stil einer Schnellantwort auf WhatsApp senden können. Dazu wird die Vonage benutzerdefiniertes Objekt Einrichtung. Sie können in den WhatsApp-Entwicklerdokumenten nachlesen, wie die Besonderheiten der Nachrichtenformat.

Wenn der Empfänger der Nachricht auf die Schaltfläche "Schnellantwort" klickt, wird Vonage POST relevante Daten zu Ihrer Webhook-URL für eingehende Nachrichten.

Beispiel

Nachstehend finden Sie die Beschreibung aller in den einzelnen Codeausschnitten verwendeten Variablen:

SchlüsselBeschreibung
VONAGE_APPLICATION_ID

The Vonage Application ID.

VONAGE_APPLICATION_PRIVATE_KEY_PATH

Private key path.

BASE_URL

For production use the base URL is https://api.nexmo.com/. For sandbox testing the base URL is https://messages-sandbox.nexmo.com/.

MESSAGES_API_URL

There are two versions of the API, each with their own endpoints. For production the previous Messages API endpoint was https://api.nexmo.com/v0.1/messages, the new one is https://api.nexmo.com/v1/messages. For sandbox testing the Messages API endpoint is https://messages-sandbox.nexmo.com/v0.1/messages or https://messages-sandbox.nexmo.com/v1/messages, depending on which version you have set in the sandbox dashboard.

WHATSAPP_NUMBER

The WhatsApp number that has been allocated to you by Vonage. For sandbox testing the number is 14157386102.

VONAGE_WHATSAPP_NUMBER

Refer to WHATSAPP_NUMBER above.

VONAGE_NUMBER

Refer to WHATSAPP_NUMBER above.

TO_NUMBER

Replace with the number you are sending to. E.g. 447700900001

WHATSAPP_TEMPLATE_NAMESPACE

The namespace ID found in your WhatsApp Business Account. Only templates created in your own namespace will work. Using an template with a namespace outside of your own results in an error code 1022 being returned.

WHATSAPP_TEMPLATE_NAME

The name of the template created in your WhatsApp Business Account.

HINWEIS: Verwenden Sie kein führendes + oder 00 Wenn Sie eine Telefonnummer eingeben, beginnen Sie mit der Landesvorwahl, z. B. 447700900000.

Voraussetzungen

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

Schreiben Sie den Code

Fügen Sie Folgendes zu send-button-quick-reply.sh hinzu:

curl -X POST "${MESSAGES_API_URL}" \
  -H "Authorization: Bearer "$JWT\
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d $'{
    "to": "'${MESSAGES_TO_NUMBER}'",
    "from": "'${WHATSAPP_SENDER_ID}'",
    "channel": "whatsapp",
    "message_type": "custom",
    "custom": {
      "type": "template",
      "template": {
        "name": "'${WHATSAPP_TEMPLATE_NAME}'",
        "language": {
          "policy": "deterministic",
          "code": "en"
        },
        "components": [
          {
            "type": "header",
            "parameters": [
              {
                "type": "image",
                "image": {
                  "link": "'${MESSAGES_IMAGE_URL}'"
                }
              }
            ]
          },
          {
            "type": "body",
            "parameters": [
              {
                "type": "text",
                "parameter_name": "customer_name",
                "text": "Joe Bloggs"
              },
              {
                "type": "text",
                "parameter_name": "dentist_name",
                "text": "Mr Smith"
              },
              {
                "type": "text",
                "parameter_name": "appointment_date",
                "text": "2025-02-26"
              },
              {
                "type": "text",
                "parameter_name": "appointment_location",
                "text": "ACME Dental Practice"
              }
            ]
          },
          {
            "type": "button",
            "sub_type": "quick_reply",
            "index": 0,
            "parameters": [
              {
                "type": "payload",
                "payload": "Yes-Button-Payload"
              }
            ]
          },
          {
            "type": "button",
            "sub_type": "quick_reply",
            "index": 1,
            "parameters": [
              {
                "type": "payload",
                "payload": "No-Button-Payload"
              }
            ]
          }
        ]
      }
    }
  }'

Vollständige Quelle anzeigen

Führen Sie Ihren Code aus

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

bash send-button-quick-reply.sh

Probieren Sie es aus

Wenn Sie den Code ausführen, wird eine WhatsApp-Erinnerungsnachricht an die Zielnummer gesendet. Die Nachricht enthält zwei Schnellantwort-Schaltflächen, mit denen Sie auswählen können, ob Sie zu der Veranstaltung gehen oder nicht. Wenn eine Schaltfläche gedrückt wird, werden Daten ähnlich den folgenden an Ihre eingehende Webhook-URL gesendet:

{
    "message_uuid": "28ee5a1c-c4cc-48ec-922c-01520d4d396b",
    "to": {
        "number": "447700000000",
        "type": "whatsapp"
    },
    "from": {
        "number": "447700000001",
        "type": "whatsapp"
    },
    "timestamp": "2019-12-03T12:45:57.929Z",
    "direction": "inbound",
    "message": {
        "content": {
            "type": "button",
            "button": {
                "payload": "Yes-Button-Payload",
                "text": "Yes"
            }
        }
    }
}

In diesem Beispiel hat der Empfänger auf die Schaltfläche "Ja" geklickt.

Weitere Informationen