Als digitales Marketing vor einigen Jahren bekannt wurde, dachte niemand daran, WhatsApp für Vertriebsstrategien zu nutzen. Unternehmen konzentrierten sich auf Banner und Internetwerbung. Heute hat sich alles geändert. Jetzt gibt es Influencer‑Marketing, digitale Strategien für soziale Netzwerke, E‑Commerce, Affiliate‑Marketing und Shops, die ausschließlich über WhatsApp verkaufen.
WhatsApp ist eine hochwirksame Plattform zur Entwicklung neuer Geschäftsbereiche. Mit Wassenger können Sie die besten Vertriebsstrategien über WhatsApp nutzen, um Ihr Unternehmen zu vergrößern und den Umsatz zu steigern. Das Versenden von Werbe-, Informations- oder Dokumentationsvideos ist eine effektive Methode, um Kunden zu binden und zu informieren.
In diesem Tutorial zeigen wir Ihnen, wie Sie automatisierte Videonachrichten und mehr mit Wassenger versenden können, damit Sie Ihre Marketingmaßnahmen verbessern und bessere Ergebnisse erzielen.
🤩 🤖 Wassenger ist eine komplette Kommunikationsplattform und API‑Lösung für WhatsApp. Entdecken Sie mehr als 100+ API‑Anwendungsfälle und automatisieren Sie alles auf WhatsApp indem Sie sich für eine kostenlose Testphase anmelden und in wenigen Minuten loslegen**!**
Wenn Sie Nachrichten aus Code versenden müssen, können Sie jede Programmiersprache verwenden, die HTTPS‑Anfragen an die API stellen kann. Weiter unten finden Sie den Live‑API‑Tester mit einsatzbereiten Codebeispielen in verschiedenen Programmiersprachen.
Voraussetzungen
- Eine bereits mit der Plattform verknüpfte und online befindliche WhatsApp‑Nummer.
- Ziel‑Gruppen‑WhatsApp‑ID. Beispiel: 120363163556480010@g.us. Sie erhalten die WhatsApp‑Gruppen‑ID Ihrer verfügbaren Gruppen‑Chats hier (erfordert ein aktives Konto bei Wassenger)
API‑Endpunkte
In diesem Tutorial verwenden wir die folgenden API‑Endpunkte:
Neuigkeiten! Sie können jetzt Mediennachrichten in einer einzigen API‑Anfrage senden, indem Sie die Remote‑URL übergeben, unter der die Datei gespeichert ist. Hier klicken, um es zu testen
Datei hochladen
Um eine Datei als Multimedia‑Nachricht zu senden, in diesem Fall eine Videodatei, müssen Sie die Datei zunächst in die Plattform hochladen.
Sie können die Datei mit den folgenden Methoden über die API hochladen:
- Remote‑URL mittels JSON mit einem
url‑Feld, das die öffentlich zugängliche URL zum Herunterladen der Datei enthält (empfohlen). - Form‑Daten (
multipart/form-data) mittels desfile‑Feldes mit dem Dateiinhalt. - Roh‑Binärdaten, indem Sie den Dateiinhalte als Datenstrom hochladen und den passenden MIME‑Typ als Content‑Type‑Header angeben, z. B.:
video/mp4.
In diesem Tutorial behandeln wir die ersten beiden Methoden des Datei‑Uploads.
Das Hochladen der Datei ermöglicht es dem System, die Datei nur einmal zu validieren und zu speichern, wodurch die Upload‑ und Verarbeitungs‑Kosten bei jeder Zustellung einer Mediennachricht vermieden werden. Das verbessert die Zustellgeschwindigkeit der Nachrichten und vereinfacht die API‑Integration.
Hinweis: Die hochgeladene Datei wird standardmäßig für 90 Tage auf der Plattform gespeichert, daher sollten Sie die Datei in vielen Fällen nur einmal hochladen. Optional können Sie auch konfigurieren, wie lange die Datei auf der Plattform gespeichert werden soll, indem Sie eine benutzerdefinierte Ablaufzeit definieren. Für weitere Details sehen Sie die API‑Dokumentation. Standardmäßig verfügt Ihr Konto über 10 GB Speicherplatz für Dateien in der Cloud.
Datei per Remote‑URL hochladen
Sie können jede Datei in die Plattform hochladen, indem Sie einfach die öffentliche URL angeben, von der die Datei heruntergeladen werden soll.
Falls die URL nicht öffentlich zugänglich ist, einen ungültigen HTTP‑Status (>=400) zurückliefert oder keinen binären Inhalt (z. B. HTML oder Text) liefert, gibt die API einen Fehler zurück.
Ziel‑API‑URL (POST)
https://api.wassenger.com/v1/files
Erforderliche HTTPS‑Header
Content-Type: application/json
Token: $API-TOKEN
Anfragekörper im JSON‑Format
{
"url": "https://download.samplelib.com/mp4/sample-5s.mp4"
}
Alternativ können Sie beim Hochladen auch optionale Felder angeben, wie eine benutzerdefinierte Ablaufzeit der Datei, eine Referenz‑Kennung oder einen benutzerdefinierten Dateinamen.
{
"url": "https://download.samplelib.com/mp4/sample-5s.mp4",
"expiration": "1d",
"filename": "sample-5s.mp4",
"reference": "Optional reference ID"
}
Datei‑ID aus der API‑Antwort erhalten
Wenn die Datei korrekt in die Plattform hochgeladen wurde, gibt die API eine gültige JSON‑Antwort wie diese zurück:
[
{
"id": "[Redacted ID]",
"format": "native",
"filename": "sample-5s.mp4",
"size": 53697,
"mime": "video/mp4",
"ext": "mp4",
"kind": "video",
"sha2": "[Redacted Hash]",
"tags": [],
"status": "active",
"mode": "default",
"createdAt": "2021-05-08T22:49:50.954Z",
"expiresAt": "2021-09-06T22:49:50.949Z"
}
]
Wichtig: Aus dem Antwort‑JSON sollten Sie das Feld id mit einem Wert, z. B. 06248ed01a7a65946c0701, entnehmen. Dies stellt die eindeutige Datei‑ID dar, die wir später verwenden, um die Datei als Mediennachricht in einer separaten API‑Anfrage zu senden.
Datei mit multipart/form‑data hochladen
Sie können jede Datei in die Plattform hochladen, indem Sie den traditionellen Multipart‑Form‑Data‑Mechanismus verwenden, der von Webbrowsern weit verbreitet genutzt wird, um verschiedene Inhaltstypen, einschließlich Dateien, an einen entfernten Server hochzuladen.
Hier erfahren Sie mehr darüber, wie Multipart‑Form‑Uploads funktionieren.
Ziel‑API‑URL (POST)
https://api.wassenger.com/v1/files
Erforderliche HTTPS‑Header
Content-Type: multipart/form-data
Token: $API-TOKEN
Anfragekörper
Im Gegensatz zum JSON‑basierten Upload müssen wir hier auf einen komplexeren Mechanismus zurückgreifen, der vom verwendeten HTTP‑Client abhängt und uns beim Zusammensetzen der Formularfelder gemäß der Multipart‑Spezifikation unterstützt.
Je nach Programmiersprache oder HTTP‑Client‑Software kann der Prozess variieren. Der Einfachheit halber gehen wir auf die beliebtesten Tools wie Postman und gängige Programmiersprachen ein.
Die Kernanforderung ist, das file‑Feld im Formular zu definieren. Andernfalls gibt die API einen Fehler zurück, da dieses Feld obligatorisch ist.
🤩 🤖 Wassenger ist eine komplette Kommunikationsplattform und API‑Lösung für WhatsApp. Entdecken Sie mehr als 100+ API‑Anwendungsfälle und automatisieren Sie alles auf WhatsApp indem Sie sich für eine kostenlose Testphase anmelden und in wenigen Minuten loslegen**!**
Datei über Ihren Webbrowser hochladen
Sie können Dateien manuell sehr einfach über die Webkonsole in die Plattform hochladen, ohne Software zu installieren:
Für automatisiertes Hochladen sehen Sie bitte die untenstehenden Alternativen.
Datei mit cURL hochladen
cURL ist ein populärer und nützlicher Kommandozeilen‑HTTP‑Client.
Sie können Dateien einfach über die Kommandozeile hochladen, indem Sie den folgenden Befehl verwenden. path/to/video.mp4 sollte den lokalen Dateipfad zu der hochzuladenden Datei darstellen:
curl \
-F file=@path/to/video.mp4 \
-H 'Token: $API-TOKEN' \
https://api.wassenger.com/v1/files
Datei mit Postman hochladen
Postman ist ein vielseitiges und praktisches Tool zum Testen und Debuggen von HTTP‑Anfragen.
Folgen Sie diesem einfachen Tutorial, um Dateien mit Postman hochzuladen und ersetzen Sie die Ziel‑URL durch die API.
Erkunden Sie das Postman‑Tutorial hier
Datei per Code hochladen
Erfahren Sie, wie Sie den Code in Ihrem Browser verwenden können, ohne Software zu installieren.
Außerdem finden Sie verschiedene Sprachen, die Sie auf Replit.com testen können:
# Requires to install requests package: # Run: pip install requests import requests
# Customize the local path of the file to upload filepath = '/path/to/video.mp4'
# API key required in order to authenticate the upload apikey = '$API_KEY'
# Read file to upload files = {'file': open(filepath,'rb')}
# Upload file response = requests.post('https://api.wassenger.com/v1/files', files=files)
if response.status_code >= 400: print('Request failed with invalid status:', response.status_code) else: json = response.json() file_id = json[0]['id'] print('File uploaded successfully with ID:', file_id)
// Customize the local path of the file to upload
$filepath = '/path/to/video.mp4';
// API key required in order to authenticate the upload
$apikey = '$API_KEY';
// Upload file
$upload = curl_init();
curl_setopt_array($upload, array(
CURLOPT_URL => 'https://api.wassenger.com/v1/files',
CURLOPT_HTTPHEADER => array(
"Token: $apikey"
),
CURLOPT_POSTFIELDS => array(
'file' => new CURLFile($filepath)
),
CURLOPT_POST => TRUE,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE
);
$response = curl_exec($upload);
if(curl_errno($ch) {
echo("Request failed");
} else if(curl_getinfo($ch, CURLINFO_HTTP_CODE) >= 400) {
echo("Invalid request or unsupported file to upload");
} else {
$json = json_decode($response, true);
$file_id = $json[0]['id'];
echo("File uploaded successfully with ID: $file_id");
}
// Requires to install pecl_http package
// Run: pecl install pecl_http
// More information: https://pecl.php.net/package/pecl_http/3.2.0
$client = new http\Client;
$request = new http\Client\Request;
// Customize the local path of the file to upload
$filepath = '/path/to/video.mp4';
// API key required in order to authenticate the upload
$apikey = '$API_KEY';
// Prepare request
$body = new http\Message\Body;
$body->addForm(null, [
[
'name' => 'file',
'type' => null,
'file' => $filename,
'data' => null
]
]);
$request->setRequestUrl('https://api.wassenger.com/v1/files');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setQuery(new http\QueryString([
'reference' => 'optional-reference-id'
]));
$request->setHeaders([
'Token' => $apikey
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
if($response->getResponseCode() >= 400) {
echo("Invalid request or unsupported file to upload");
} else {
$body = json_decode($response->getBody()->toString());
$file_id = $json[0]['id'];
echo("File uploaded successfully with ID: $file_id");
}
package main
import(
"net/http"
"os"
"bytes"
"path"
"path/filepath"
"mime/multipart"
"io"
"encoding/json"
)
// API key required in order to authenticate the upload
const apiKey = "$API_KEY"
func main() {
# Customize the local path of the file to upload
fileName:= "path/to/video.mp4"
fileDir, _:= os.Getwd()
filePath:= path.Join(fileDir, fileName)
file, _:= os.Open(filePath)
defer file.Close()
body:= &bytes.Buffer{}
writer:= multipart.NewWriter(body)
part, _:= writer.CreateFormFile("file", filepath.Base(file.Name()))
io.Copy(part, file)
writer.Close()
r, _:= http.NewRequest("POST", "https://api.wassenger.com/v1/files", body)
r.Header.Add("Token", apiKey)
r.Header.Add("Content-Type", writer.FormDataContentType())
client:= &http.Client{Timeout: 90 * time.Second}
response, err:= client.Do(r)
if err != nil {
fmt.Printf("Request failed with an error: %s", err.Error())
return
}
if(response.StatusCode >= 400) {
fmt.Printf("Request failed with response status: %d", response.StatusCode)
return
}
body:= []struct{
Id string `json:"id"`
}{}
defer response.Body.Close()
err:= json.NewDecoder(response.Body).Decode(&body)
if err != nil {
fmt.Printf("Failed to decode JSON: %s", err.Error())
return
}
fileId:= body[0].Id
fmt.Printf("File uploaded successfully with ID:", fileId)
}
- C# (RestClient)
RestClient restClient = new RestClient("https://api.wassenger.com");
RestRequest restRequest = new RestRequest("/v1/files");
restRequest.Method = Method.POST;
restRequest.AddHeader("Token", "$API_KEY");
restRequest.AddHeader("Content-Type", "multipart/form-data");
restRequest.AddFile("file", "/path/to/video.mp4");
var response = restClient.Execute(restRequest);
var json = JsonConvert.DeserializeObject(response.Content);
var fileId =(string)json[0]["id"];
Console.WriteLine("File uploaded successfully with ID: {0}", fileId);
require 'net/http/post/multipart'
url = URI.parse('https://api.wassenger.com/v1/files')
File.open("/path/to/video.mp4") do |image|
req = Net::HTTP::Post::Multipart.new url.path, "file" => UploadIO.new(image, "image/jpeg", "image.jpg")
req['Token'] = "API_KEY"
res = Net::HTTP.start(url.host, url.port) do |http|
http.request(req)
end
end
List<File> = Unirest.post("https://api.wassenger.com/v1/files")
.header("Token", "API_KEY")
.field("file", new File("/path/to/video.mp4"))
.getBody()
🤩 🤖 Wassenger ist eine komplette Kommunikationsplattform und API‑Lösung für WhatsApp. Entdecken Sie mehr als 100+ API‑Anwendungsfälle und automatisieren Sie alles auf WhatsApp indem Sie sich für eine kostenlose Testphase anmelden und in wenigen Minuten loslegen**!**
Live‑Test des Datei‑Uploads über die API
Entdecken Sie unseren API‑Live‑Tester
Mediendateien an eine Gruppe senden
Dazu müssen Sie lediglich die Ziel‑Gruppenchat‑ID und die hochgeladene Datei‑ID (24 hexadezimale Zeichen) kennen, die Sie aus den hier aufgelisteten hochgeladenen Dateien oder aus der Liste der hochgeladenen Dateien über die API erhalten können.
Um Nachrichten an eine Gruppe zu senden, müssen Sie Teilnehmer der Gruppe sein und die Berechtigung zum Senden von Nachrichten besitzen. Wenn Sie Administrator der Gruppe sind, haben Sie volle Berechtigungen zum Senden von Nachrichten.
Anfrage vorbereiten
Ziel‑API‑URL (POST)
https://api.wassenger.com/v1/messages
Erforderliche HTTPS‑Header
Content-Type: application/json
Token: $API_KEY
Anfragekörper im JSON‑Format
Senden einer Nachricht an einen Gruppenchat:
{
"group": "120363163556480010@g.us",
"message": "This is a media message example sent a group 😀",
"media": {
"file": "UPLOADED FILE ID GOES HERE"
}
}
Senden Sie das Video in der Sprache, die am besten zu Ihren Bedürfnissen passt
Erfahren Sie, wie Sie den Code in Ihrem Browser verwenden können, ohne Software zu installieren.
Außerdem finden Sie verschiedene Sprachen, die Sie auf Replit.com testen können:
# Examples requires to have installed requests Python package. # Install it by running: pip install requests
import requests
url = "https://api.wassenger.com/v1/messages"
payload = { "group": "1234567890-100000000@g.us", "message": "This is a caption for a video message", "media": { "url": "https://download.samplelib.com/mp4/sample-5s.mp4", "viewOnce": False } } headers = { "Content-Type": "application/json", "Token": "ENTER API KEY HERE" }
response = requests.post(url, json=payload, headers=headers)
print(response.json())
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.wassenger.com/v1/messages',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode([
'group' => '1234567890-100000000@g.us',
'message' => 'This is a caption for a video message',
'media' => [
'url' => 'https://download.samplelib.com/mp4/sample-5s.mp4',
'viewOnce' => null,
],
]),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Token: ENTER API KEY HERE',
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo 'cURL Error #:' . $err;
} else {
echo $response;
}
// Examples requires to have installed pecl_http package, a simple and elegant HTTP client for PHP.
// Install it by running: pecl install pecl_http
// More information: https://pecl.php.net/package/pecl_http/3.2.0
<?php
$client = new http\Client();
$request = new http\Client\Request();
$body = new http\Message\Body();
$body->append(
json_encode([
'group' => '1234567890-100000000@g.us',
'message' => 'This is a caption for a video message',
'media' => [
'url' => 'https://download.samplelib.com/mp4/sample-5s.mp4',
'viewOnce' => null,
],
])
);
$request->setRequestUrl('https://api.wassenger.com/v1/messages');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders([
'Content-Type' => 'application/json',
'Token' => 'ENTER API KEY HERE',
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
package main
import(
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url:= "https://api.wassenger.com/v1/messages"
payload:= strings.NewReader("{\"group\":\"1234567890-100000000@g.us\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}")
req, _:= http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Token", "ENTER API KEY HERE")
res, _:= http.DefaultClient.Do(req)
defer res.Body.Close()
body, _:= io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
- C# (RestClient)
// This code requires you to have installed RestSharp package.
// Documentation: https://restsharp.dev
// Installation: https://www.nuget.org/packages/RestSharp
var client = new RestClient("https://api.wassenger.com/v1/messages");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Token", "ENTER API KEY HERE");
request.AddParameter("application/json", "{\"group\":\"1234567890-100000000@g.us\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
require 'uri'
require 'net/http'
url = URI("https://api.wassenger.com/v1/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Token"] = 'ENTER API KEY HERE'
request.body = "{\"group\":\"1234567890-100000000@g.us\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}"
response = http.request(request)
puts response.read_body
// This code requires you to have installed Unirest package.
// Documentation: https://kong.github.io/unirest-java/#requests
// Installation: http://kong.github.io/unirest-java/
HttpResponse<String> response = Unirest.post("https://api.wassenger.com/v1/messages")
.header("Content-Type", "application/json")
.header("Token", "ENTER API KEY HERE")
.body("{\"group\":\"1234567890-100000000@g.us\", \"message\":\"This is a caption for a video message\", \"media\":{\"url\":\"https://download.samplelib.com/mp4/sample-5s.mp4\", \"viewOnce\":false}}")
.asString();
Live‑Test: Senden einer Gruppen‑Nachricht über die API
Entdecken Sie unseren API‑Live‑Tester
🤩 🤖 Wassenger ist eine komplette Kommunikationsplattform und API‑Lösung für WhatsApp. Entdecken Sie mehr als 100+ API‑Anwendungsfälle und automatisieren Sie alles auf WhatsApp indem Sie sich für eine kostenlose Testphase anmelden und in wenigen Minuten loslegen**!**
FAQs
Welche Medientypen können gesendet werden?
Sie können Bilder (JPEG, PNG, WEBP), Videos (MP4, 3GPP), Audios (MP3, OGG, MP4, AAC), GIFs (MP4) und Dokumente (PDF, PPT, PPTX, DOCX, DOC, ZIP, RAR sowie andere Binärtypen) senden.
Weitere Details finden Sie in der API‑Dokumentation.
Wie sendet man Nachrichten an mehrere Telefonnummern?
Sie müssen lediglich mehrere API‑Anfragen senden, eine pro Zieltelefonnummer.
Wenn Sie z. B. eine Nachricht an 10 Telefonnummern senden möchten, sollten Sie 10 unabhängige HTTPS‑Anfragen an die API senden.
Es gibt keine Möglichkeit, mehrere Nachrichten in einer einzigen API‑Anfrage zu senden.
Wie kann man prüfen, ob eine Telefonnummer WhatsApp‑Nachrichten empfangen kann?
Sie können prüfen, ob eine bestimmte Telefonnummer mit einem WhatsApp‑Konto verknüpft ist und Nachrichten empfangen kann.
Die API stellt einen Endpunkt bereit, der validieren kann, ob eine bestimmte Telefonnummer bei WhatsApp existiert oder nicht.
Die einzige Voraussetzung ist, dass mindestens eine WhatsApp‑Nummer in Ihrem aktuellen Konto mit der Plattform verbunden ist.
Für weitere Details sehen Sie bitte die API‑Endpunkt‑Dokumentation hier.
Bevor Sie prüfen, ob eine Telefonnummer bei WhatsApp existiert, können Sie auch das Format einer Liste von Telefonnummern validieren und normalisieren, indem Sie den Numbers‑Validator‑API‑Endpunkt verwenden. Dieser Endpunkt validiert nur das korrekte E.164‑Format, prüft aber nicht, ob die Telefonnummer tatsächlich bei WhatsApp existiert.
Hinweis: Die Anzahl der WhatsApp‑Prüfungen ist pro Monat je nach Ihrem Abonnementplan begrenzt. Siehe die Preistabelle für weitere Details zu den Limits.
Suchen Sie nach mehr Antworten? Sehen Sie sich die erweiterten FAQs an.
Weiterführende nützliche Ressourcen
API‑Dokumentation
Für weitere Details zu den API‑Endpunkten lesen Sie die Dokumentation, in der Sie alle Informationen zu den akzeptierten Anfrageparametern, möglichen Erfolgs‑ oder Fehlerantworten und einsatzbereiten Codebeispielen in mehreren Programmiersprachen finden:








