Quando il marketing digitale divenne popolare qualche anno fa, nessuno pensava di usare WhatsApp per strategie di vendita. Le aziende si concentravano su banner e pubblicità su Internet. Oggi tutto è cambiato. Ora abbiamo Influencer Marketing, strategie digitali per i social network, e-commerce, affiliate marketing e negozi che vendono esclusivamente via WhatsApp.
WhatsApp è una piattaforma altamente efficace per sviluppare nuovi business. Con Wassenger, puoi sfruttare le migliori strategie di vendita tramite WhatsApp, aiutandoti a far crescere il tuo business e aumentare le vendite. Inviare video promozionali, informativi o documentativi è un modo efficace per mantenere i clienti coinvolti e informati.
In questo tutorial, ti insegneremo come inviare messaggi video automatizzati e altro usando Wassenger, così potrai potenziare i tuoi sforzi di marketing e ottenere risultati migliori.
🤩 🤖 Wassenger è una piattaforma di comunicazione completa e una soluzione API per WhatsApp. Esplora più di 100+ casi d'uso API e automatizza qualsiasi cosa su WhatsApp iscrivendoti per una prova gratuita e iniziare in pochi minuti**!**
Se hai bisogno di inviare messaggi dal codice, puoi usare qualsiasi linguaggio di programmazione in grado di effettuare richieste HTTPS all'API. Di seguito troverai il tester API live con esempi di codice pronti all'uso in diversi linguaggi di programmazione.
Requisiti
- Avere un numero WhatsApp già collegato alla piattaforma e online.
- ID del Gruppo WhatsApp di destinazione. Esempio: 120363163556480010@g.us. Ottieni l'ID del Gruppo WhatsApp dalle tue Chat di Gruppo disponibili qui (richiede un account attivo su Wassenger)
Endpoint API
In questo tutorial useremo il seguente endpoint API:
Ultim'ora! Ora puoi inviare messaggi multimediali in una singola richiesta API passando l'URL remoto dove il file è memorizzato. Clicca qui per testarlo
Caricare il file
Per inviare un file come messaggio multimediale, in questo caso un file video, dovresti prima caricare il file sulla piattaforma.
Puoi caricare il file usando i seguenti metodi tramite l'API:
- URL remoto usando JSON con un campo
urlche contiene l'URL pubblicamente accessibile per scaricare il file (consigliato). - Form data (
multipart/form-data) usando il campofilecon il contenuto del file. - Dati binari grezzi caricando il contenuto del file come stream di dati con il corretto MIME type del file nell'header Content-Type, es.:
video/mp4.
In questo tutorial copriremo i primi due metodi di upload dei file.
Caricare il file permette al sistema di validare e memorizzare il file una sola volta, evitando il costo di upload e di elaborazione ogni volta che un messaggio multimediale viene inviato, migliorando così la velocità di consegna del messaggio e semplificando l'integrazione con l'API.
Nota che il file caricato sarà memorizzato nella piattaforma per 90 giorni di default, quindi in molti casi dovrai caricare il file una sola volta e basta. Opzionalmente, puoi anche configurare per quanto tempo il file deve essere conservato nella piattaforma definendo un tempo di scadenza personalizzato, per maggiori dettagli consulta la documentazione API. Per impostazione predefinita, il tuo account ha 10GB di capacità di archiviazione file nel cloud.
Caricare il file usando un URL remoto
Puoi caricare qualsiasi file sulla piattaforma semplicemente specificando l'URL pubblico da cui scaricare il file.
Nel caso l'URL non sia pubblicamente accessibile, ritorni uno status HTTP non valido (>=400) o restituisca contenuto non binario, come HTML o testo, l'API restituirà un errore.
Target API URL (POST)
https://api.wassenger.com/v1/files
Header HTTPS richiesti
Content-Type: application/json
Token: $API-TOKEN
Corpo della richiesta in formato JSON
{
"url": "https://download.samplelib.com/mp4/sample-5s.mp4"
}
In alternativa, puoi anche specificare campi opzionali durante il caricamento del file, come un tempo di scadenza personalizzato, un identificatore di riferimento o un nome file personalizzato.
{
"url": "https://download.samplelib.com/mp4/sample-5s.mp4",
"expiration": "1d",
"filename": "sample-5s.mp4",
"reference": "Optional reference ID"
}
Ottieni l'ID del file dalla risposta API
Se il file è stato correttamente caricato sulla piattaforma, l'API restituirà una risposta valida in formato JSON come questa:
[
{
"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"
}
]
Importante: Dalla risposta JSON dovresti ottenere il campo id con un valore, ad esempio 06248ed01a7a65946c0701, che rappresenta l'ID univoco del file che useremo poi per inviare il file come messaggio multimediale in una richiesta API separata.
Caricare il file usando multipart form data
Puoi caricare qualsiasi file sulla piattaforma usando il tradizionale meccanismo multipart form data ampiamente usato dai browser per caricare diversi tipi di contenuti, inclusi file, su un server remoto.
Qui puoi apprendere di più su come funziona l'upload multipart form.
Target API URL (POST)
https://api.wassenger.com/v1/files
Header HTTPS richiesti
Content-Type: multipart/form-data
Token: $API-TOKEN
Corpo della richiesta
Diversamente dall'upload basato su JSON, in questo caso dobbiamo fare affidamento su un meccanismo più complesso basato sul client HTTP che stiamo usando che ci aiuterà a comporre i campi del form secondo la specifica multipart.
A seconda del linguaggio di programmazione o del software client HTTP che stai usando, il processo può variare. Per semplicità, metteremo in evidenza gli strumenti più popolari, come Postman, e i linguaggi di programmazione più diffusi.
Il requisito principale è definire il campo file nel form data, altrimenti l'API restituirà un errore in quanto questo campo è obbligatorio.
🤩 🤖 Wassenger è una piattaforma di comunicazione completa e una soluzione API per WhatsApp. Esplora più di 100+ casi d'uso API e automatizza qualsiasi cosa su WhatsApp iscrivendoti per una prova gratuita e iniziare in pochi minuti**!**
Carica il file dal tuo browser web
Puoi caricare manualmente i file facilmente sulla piattaforma dalla console web senza installare alcun software:
Per il caricamento file automatizzato, vedi le opzioni alternative sotto.
Caricare file usando cURL
cURL è un client HTTP da riga di comando popolare e utile.
Puoi facilmente caricare i file dalla riga di comando usando il seguente comando, dove path/to/video.mp4 rappresenta il percorso del file che vuoi caricare dal tuo disco locale:
curl \
-F file=@path/to/video.mp4 \
-H 'Token: $API-TOKEN' \
https://api.wassenger.com/v1/files
Caricare file usando Postman
Postman è uno strumento versatile e utile per il testing e il debugging HTTP.
Seguendo questo semplice tutorial, puoi caricare file usando Postman, sostituendo l'URL di destinazione con quello dell'API.
Esplora il tutorial Postman qui
Caricare file usando il codice
Scopri come usare il codice nel tuo browser senza installare alcun software.
Inoltre, puoi trovare diversi linguaggi che puoi testare su Replit.com:
# 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 è una piattaforma di comunicazione completa e una soluzione API per WhatsApp. Esplora più di 100+ casi d'uso API e automatizza qualsiasi cosa su WhatsApp iscrivendoti per una prova gratuita e iniziare in pochi minuti**!**
Test live del caricamento file usando l'API
Esplora il nostro tester API live
Inviare messaggi multimediali a un gruppo
Per farlo, devi semplicemente conoscere l'ID della chat di gruppo di destinazione e l'ID del file caricato (24 caratteri esadecimali) che puoi ottenere dai file caricati elencati qui o dalla lista dei file caricati via API.
Per inviare messaggi a un gruppo, devi essere un partecipante di esso con i permessi per inviare messaggi. Se sei amministratore del gruppo avrai i permessi completi per inviare messaggi.
Preparare la richiesta
Target API URL (POST)
https://api.wassenger.com/v1/messages
Header HTTPS richiesti
Content-Type: application/json
Token: $API_KEY
Corpo della richiesta in formato JSON
Inviare un messaggio a una chat di gruppo:
{
"group": "120363163556480010@g.us",
"message": "This is a media message example sent a group 😀",
"media": {
"file": "UPLOADED FILE ID GOES HERE"
}
}
Invia il video nella lingua che meglio si adatta alle tue esigenze
Scopri come usare il codice nel tuo browser senza installare alcun software.
Inoltre, puoi trovare diversi linguaggi che puoi testare su Replit.com:
# 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();
Test live per inviare un messaggio di gruppo usando l'API
Esplora il nostro tester API live
🤩 🤖 Wassenger è una piattaforma di comunicazione completa e una soluzione API per WhatsApp. Esplora più di 100+ casi d'uso API e automatizza qualsiasi cosa su WhatsApp iscrivendoti per una prova gratuita e iniziare in pochi minuti**!**
FAQ
Che tipo di file multimediali si possono inviare?
Puoi inviare immagini (JPEG, PNG, WEBP), video (MP4, 3GPP), audio (MP3, OGG, MP4, ACC), gif (MP4) e documenti (PDF, PPT, PPTX, DOCX, DOC, ZIP, RAR, altri tipi binari).
Consulta la documentazione API per maggiori dettagli.
Come inviare messaggi a più numeri di telefono
Devi semplicemente inviare più richieste API, una per ogni numero di telefono di destinazione.
Ad esempio, se vuoi inviare un messaggio a 10 numeri di telefono, dovresti inviare 10 richieste HTTPS indipendenti all'API.
Non esiste un'opzione per inviare più messaggi in una singola richiesta API.
Come validare se un numero di telefono può ricevere messaggi WhatsApp
Puoi validare se un dato numero di telefono è collegato a un account WhatsApp e può ricevere messaggi.
L'API fornisce un endpoint che può validare se un dato numero di telefono esiste su WhatsApp o meno.
L'unico requisito è avere almeno un numero WhatsApp connesso alla piattaforma nel tuo account corrente.
Per maggiori dettagli, consulta la documentazione dell'endpoint API qui.
Prima di verificare se un numero di telefono esiste su WhatsApp, puoi anche validare e normalizzare il formato di una lista di numeri di telefono usando l'endpoint di validazione numeri. Questo endpoint valida solo il corretto formato E164, ma non verifica se il numero di telefono esiste effettivamente su WhatsApp.
Nota: Il numero di validazioni di check WhatsApp è limitato al mese in base al tuo piano di abbonamento. Controlla la tabella dei prezzi per maggiori dettagli sui limiti.
Cerchi altre risposte? Consulta le FAQ estese.
Ulteriori risorse utili
Documentazione API
Per maggiori dettagli sull'endpoint API, consulta la documentazione dove troverai tutti i dettagli sui parametri di richiesta accettati, le possibili risposte di successo o errore e esempi di codice pronti all'uso in più linguaggi di programmazione:








