/v1/contacts
Verwalte WhatsApp-Benutzer*innen in deiner Datenbank mit dem contacts
-Node, indem du sie validierst, bevor Nachrichten gesendet werden. Bestätige außerdem die Identität von Benutzer*innen mit Identitäts-Hashes.
Der Node contacts
ermöglicht Folgendes:
status
valid
lautet, bevor du einem*einer Benutzer*in eine Nachricht senden kannst. Ab v2.39.1 kann der Node messages
direkt mit einer Telefonnummer verwendet werden, ohne dass diese zuerst mit dem Node contacts
in eine WhatsApp-ID übersetzt werden muss.
Wir gestalten den Node contacts
ab v2.43 so um, dass keine Statusinformationen zu einer Telefonnummer mehr angegeben werden. Unabhängig davon, ob ein*eine Benutzer*in WhatsApp hat, wird in der Antwort als status
immer valid
sowie eine wa_id.
zurückgegeben.
Du musst deinen Kund*innen die Möglichkeit bieten, WhatsApp-Kommunikationen mit deinem Unternehmen beizutreten. Dieser Beitrittsvorgang wird von deinem Unternehmen verwaltet. Verwende nach dem Beitritt eines*einer Kund*in den contacts
-Node, um die registrierte Nummer zu verifizieren. Weitere Informationen dazu findest du unter Informationen zur Einholung der Zustimmung zu WhatsApp.
Wenn ein Unternehmen den Endpunkt falsch verwendet, werden die folgenden Maßnahmen ergriffen:
Am besten überprüfst du die Kontakte vor jeder gesendeten Nachricht. Du musst jedoch keine Kontakte überprüfen, um auf eine eingehende Kundennachricht zu antworten. Du kannst mit der wa_id
sofort antworten. Es fallen keine zusätzlichen Kosten an, da die Ergebnisse zwischengespeichert werden.
Sende vor dem Senden von Nachrichten an Benutzer*innen, die dies so eingestellt haben, eine POST
-Anfrage an /v1/contacts
, um eine Anfrage zur Überprüfung eines*einer WhatsApp Account-Benutzer*in zu erstellen. Schließe in den Aufruf eine Liste von Telefonnummern ein, die du überprüfen möchtest.
POST /v1/contacts { "blocking": "wait" | "no_wait", "contacts": [ "16315551000", "+1 631 555 1001", "6315551002", "+1 (631) 555-1004", "1-631-555-1005" ], "force_check": false | true }
Du erhältst eine Antwort mit dem aktuellen status
der angefragten Nummern und deren WhatsApp-IDs (wa_id
):
{ "contacts": [ { "wa_id": "16315551000", "input": "16315551000", "status": "valid" }, { "wa_id": "16315551001", "input": "+1 631 555 1001", "status": "processing" # Only applicable when request is non-blocking }, { "input": "6315551002", "status": "invalid" }, { "input": "+163155588", "status": "failed" } }
Speichere die WhatsApp-IDs für die Nummern, die einen status
von valid
zurückgesendet haben. Gültige Nutzer sind diejenigen mit einem WhatsApp-Konto. Verwende die WhatsApp-IDs zum Senden von Nachrichten und Benachrichtigungen.
Wiederhole diese Schritte regelmäßig, um die Liste deiner gültigen Benutzer*innen zu verwalten. Die Ergebnisse werden in der Datenbank des WhatsApp Business On-Premises API-Clients 7 Tage lang zwischengespeichert.
Die folgenden Parameter werden für POST
-Aufrufe an /v1/contacts
unterstützt:
Name | Beschreibung |
---|---|
| Optional. Gibt an, ob die Anfrage mit der Rückgabe der Antwort warten soll, bis die Verarbeitung abgeschlossen ist oder nicht. Weitere Informationen findest du unten im Abschnitt zu Blockierung. Mögliche Werte: |
| Erforderlich. Array von Telefonnummern, die du überprüfst. Die Nummern können in jedem standardmäßigen Telefonnummernformat vorliegen. Das empfohlene Format für Kontakttelefonnummern beginnt mit einem Pluszeichen ( |
| Optional. Gibt an, ob der Kontakte-Zwischenspeicher geprüft werden soll oder nicht. Kontaktinformationen werden in der Regel 7 Tage lang zwischengespeichert. Indem du den Mögliche Werte: |
Die folgenden Edges sind mit diesem Node verbunden:
Edge | Beschreibung |
---|---|
Verwende diese Edge, um die Identitäten von Benutzer*innen zu verwalten. Weitere Informationen findest du unter Bedeutung von Identitätsänderungen für WhatsApp Business. |
Es gibt zwei Optionen für die blocking
-Parameter: no_wait
und wait
. Wenn der blocking
-Parameter in einem Anruf nicht angegeben ist, lautet der Standardwert no_wait
.
Der blocking
-Parameter bestimmt, ob die Anfrage auf den Abschluss der Verarbeitung warten sollte (synchron) oder nicht (asynchron).
Einstellung | Beschreibung |
---|---|
| Die Verarbeitung der Telefonnummern erfolgt asynchron. Die Antwort kann einige Nummern enthalten, bei denen
|
| Die Verarbeitung der Nummern erfolgt synchron. Nach der Synchronisierung mit dem Server wird der letzte Status aller Kontakte angezeigt. Aufgrund dieser Einstellung wartet der Abfragenblock, bis die Nummern alle überprüft wurden, und sendet erst dann die Ergebnisse zurück. Dies kann einige Zeit dauern. |
Die Telefonnummern in der contacts
-Anfrage können jedes beliebige wählbare Format aufweisen.
Ist kein Pluszeichen (+
) am Anfang der Telefonnummer vorhanden, wird die Ländervorwahl mittels der Telefonnummer bestimmt, die dein WhatsApp Business On-Premises API-Client registriert hat. Alle Telefonnummern in Verbindung mit einem anderen Ländercode schlagen fehl.
Es wird daher empfohlen, die Ländervorwahl am besten immer mit der Telefonnummer anzugeben und diese zuvor eindeutig mit einem Pluszeichen (+
) zu kennzeichnen.
Beachte, dass die Ländervorwahl weiterhin verwendet werden kann, auch wenn die Telefonnummer nach +
ungültig ist. Es wird empfohlen, vor der Nutzung der On-Prem API Telefonnummern zu überprüfen, um unvorhersehbares Verhalten zu vermeiden.
Nachfolgend findest du einige Beispiele, die diesen Vorgang beschreiben. Dabei wird davon ausgegangen, dass der WhatsApp Business On-Premises API-Client mit einer indischen Telefonnummer (d. h. mit der Ländervorwahl +91
) registriert ist:
Telefonnummer | Übertragene Telefonnummer |
---|---|
|
|
|
|
|
|
|
|
|
|
Der contacts
-Antwort-Payload enthält dasselbe Array an Telefonnummern mit den Eigenschaften input
, status
und wa_id
, die bei der Anfrage gesendet wurden:
Name | Beschreibung |
---|---|
| Der Wert, den du im |
v2.41 und niedriger | Status des*der Benutzer*in Mögliche Werte:
|
v2.43 und höher | Status des*der Benutzer*in Mögliche Werte:
|
v2.41 und niedriger | WhatsApp-Benutzer-ID, die in anderen Aufrufen verwendet werden. Wird nur zurückgegeben, wenn |
v2.43 und höher | Zurückgegebene WhatsApp-Benutzer-ID, die gültig sein kann oder auch nicht Da es keine Garantie dafür gibt, dass der Wert gültig ist, solltest du diesen Wert in nachfolgenden Aufrufen nicht mehr verwenden. |
Neben dem processing
-Status solltest du den HTTP-Status 200 OK
sehen.
Wenn eine Vorlagennachricht an eine Telefonnummer ohne WhatsApp-Konto gesendet wird, erhältst du die Fehlermeldung „Benutzer ist ungültig“ mit dem Fehlercode 1013
.
Informationen zu anderen Fehlern in der Antwort findest du unter Fehler- und Statusmeldungen.
Das Blockieren kann als Verteidigungsfunktion gesehen werden, um böswillige Nutzer*innen daran zu hindern, schadhafte Aktionen auszuführen. Um einen Kontakt blockieren zu können, muss dieser dir innerhalb der letzten 24 Stunden eine Nachricht gesendet haben.
Sende einen API-Aufruf an /v1/contacts/{phone_number}/block
mit einen Grund zur Blockierung eines anderen WhatsApp-Kontos.
POST /v1/contacts/+16315551000/block { "reason": "Optional string(0;60). Freeform block reason. Will be used when another WhatsApp account is being blocked" }
Eine erfolgreiche Antwort weist den HTTP-Status 200
und keine „Fehlerobjekte“ auf.
Eine nicht erfolgreiche Antwort sieht zum Beispiel wie folgt aus:
{ "errors": [ { "code": 2048, "title": "Not engaged contact", "details": "Invalid Request. This contact hasn't engaged with you in the last 24 hrs." } ] }
Die folgenden Parameter werden für POST-Aufrufe an /v1/contacts/{phone_number}/block
unterstützt:
Einstellung | Beschreibung |
---|---|
| Optional. Freitext für den Blockierungsgrund. Wird verwendet, wenn ein anderes WhatsApp-Konto blockiert wird. Muss weniger als 60 Zeichen haben. |
| Erforderlich. Die Nummern können in jedem standardmäßigen Telefonnummernformat vorliegen. Das empfohlene Format für Kontakttelefonnummern beginnt mit einem Pluszeichen (+) und der Landesvorwahl. Weitere Informationen findest du unter Formate von Telefonnummern. |
Führe diesen Aufruf aus, um die Blockierung eines Kontakts aufzuheben
Sende einen API-Aufruf an /v1/contacts/{phone_number}/unblock
.
POST /v1/contacts/+16315551000/unblock
Eine erfolgreiche Antwort weist den HTTP-Status 200
und keine „Fehlerobjekte“ auf.
Eine nicht erfolgreiche Antwort sieht zum Beispiel wie folgt aus:
{ "errors": [ { "code": 1009, "title": "Parameter value is not valid", "details": "Provided WhatsApp ID is not valid. Please provide a valid WhatsApp ID or a phone number with a country code" } ] }
Die folgenden Parameter werden für POST-Aufrufe an /v1/contacts/{phone_number}/unblock
unterstützt:
Einstellung | Beschreibung |
---|---|
| Erforderlich. Die Nummern können in jedem standardmäßigen Telefonnummernformat vorliegen. Das empfohlene Format für Kontakttelefonnummern beginnt mit einem Pluszeichen (+) und der Landesvorwahl. Weitere Informationen findest du unter Formate von Telefonnummern. |
So rufst du eine Liste deiner blockierten Kontakte ab.
Sende einen API-Aufruf an /v1/contacts/blocklist
, um eine Liste deiner blockierten Kontakte zu erhalten.
GET /v1/contacts/blocklist?limit=10&offset=0
Du erhältst eine Antwort mit einer Seite deiner Blockierliste und Informationen zur Paginierung.
{ "contacts": [ { "wa_id": "16315551000@s.whatsapp.net" } ], "pagination": { "limit": 10, "offset": 0, "total": 1 } }
Die folgenden Parameter werden für GET-Aufrufe an /v1/contacts/blocklist
unterstützt:
Einstellung | Beschreibung |
---|---|
| Optional. Der zulässige Bereich ist (0; 200). Standard: 100. |
| Optional. Standard: 0. |
Durch das Melden werden wichtige Signale für das Einrichten präventiver Maßnahmen gegen böswilliger Nutzer*innen gesendet. Damit du einen Kontakt melden kannst, muss dieser dir innerhalb der letzten 24 Stunden eine Nachricht gesendet haben.
Sende einen API-Aufruf an /v1/contacts/{phone_number}/report
und gib den Grund an, weshalb das andere WhatsApp-Konto blockiert werden soll.
POST /v1/contacts/+16315551000/block { "reason": "Optional string(0;60). Freeform block reason. Will be used when another WhatsApp account is being blocked", "block": "true | false optional boolean with default of false", "message_id": "message-id. Optional reported message id" }
Eine erfolgreiche Antwort weist den HTTP-Status 200
und keine „Fehlerobjekte“ auf.
Eine nicht erfolgreiche Antwort sieht zum Beispiel wie folgt aus:
{ "errors": [ { "code": 2048, "title": "Not engaged contact", "details": "Invalid Request. This contact hasn't engaged with you in the last 24 hrs." } ] }
Die folgenden Parameter werden für POST-Aufrufe an /v1/contacts/{phone_number}/report
unterstützt:
Einstellung | Beschreibung |
---|---|
| Optional. Freitext für den Blockierungsgrund. Wird verwendet, wenn ein anderes WhatsApp-Konto blockiert wird. Muss weniger als 60 Zeichen haben. |
| Optional. Der Standardwert ist Gibt an, ob ein Kontakt nur gemeldet oder auch blockiert werden soll. |
| Optional. Nachrichten-ID, die gemeldet werden soll. Wenn keine angegeben wird, werden die letzten fünf Nachrichten an WhatsApp gesendet. |
| Erforderlich. Die Nummern können in jedem standardmäßigen Telefonnummernformat vorliegen. Das empfohlene Format für Kontakttelefonnummern beginnt mit einem Pluszeichen (+) und der Landesvorwahl. Weitere Informationen findest du unter Formate von Telefonnummern. |