Perché accontentarsi del testo semplice quando puoi inviare automaticamente video, immagini, GIF e file? Con solo un po' di codice puoi migliorare la comunicazione su WhatsApp e rendere ogni messaggio più personale, coinvolgente e d'impatto.
Questa guida è per tutti, sia che tu sia uno sviluppatore o stia appena iniziando ad esplorare le API. Ti guideremo su come inviare contenuti multimediali tramite WhatsApp usando Wassenger, direttamente dal tuo computer.
È più facile di quanto pensi, e i risultati? Molto più divertenti ed efficaci. Immergiamoci e diamo ai tuoi messaggi l'upgrade che meritano.
🤩 🤖 Wassenger è una piattaforma di comunicazione completa e una soluzione API per WhatsApp. Esplora oltre 100+ casi d'uso API e automatizza qualsiasi cosa su WhatsApp iscrivendoti a una prova gratuita e inizia in pochi minuti!
In questo tutorial imparerai come inviare messaggi multimediali a numeri di telefono e a liste di chat di gruppo usando l'API.
Un file multimediale può essere uno dei seguenti: 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).
Se hai bisogno di inviare messaggi da codice, puoi usare qualsiasi linguaggio di programmazione che sappia eseguire richieste HTTPS all'API. Qui sotto troverai il tester API live con esempi di codice pronti all'uso in vari linguaggi di programmazione.
Requisiti
- Avere un numero WhatsApp già collegato alla piattaforma e online.
- Numero di telefono del destinatario con prefisso internazionale nel formato E164. Esempio:
+12345678900. Verifica il formato del numero di telefono qui.
Endpoint API
In questo tutorial useremo il seguente endpoint API:
Novità! Ora puoi inviare messaggi multimediali in una singola richiesta API passando l'URL remoto dove il file è memorizzato. Clicca qui per provarlo
Carica il file
Per inviare un file come messaggio multimediale, in questo caso un file immagine, devi prima caricare il file sulla piattaforma.
Puoi caricare il file usando i seguenti metodi tramite l'API:
- URL remoto usando JSON con un campo
urlcontenente l'URL accessibile pubblicamente da cui 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:
image/jpeg,application/pdf.
In questo tutorial copriremo i primi due metodi di upload dei file.
Caricare il file permette al sistema di validarlo e memorizzarlo una sola volta, evitando il costo di upload e di elaborazione ogni volta che un messaggio multimediale viene inviato, migliorando quindi la velocità di consegna del messaggio e semplificando l'integrazione con l'API.
Nota che il file caricato verrà memorizzato sulla piattaforma per 90 giorni di default, quindi in molti casi dovrai caricare il file una sola volta e sarà sufficiente. In alternativa, puoi anche configurare per quanto tempo il file deve essere conservato sulla piattaforma definendo un tempo di scadenza personalizzato, per maggiori dettagli controlla la documentazione API. Di default, il tuo account ha una capacità di archiviazione file nel cloud di 10GB.
Carica il file usando un URL remoto
Puoi caricare qualsiasi file sulla piattaforma specificando semplicemente l'URL pubblico da cui scaricare il file.
Nel caso in cui l'URL non sia pubblicamente accessibile, ritorni uno status HTTP non valido (>=400) o ritorni contenuto non binario, come HTML o testo, l'API restituirà un errore.
URL API di destinazione (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://picsum.photos/seed/picsum/600/400"
}
In alternativa, puoi anche specificare campi opzionali quando carichi il file, come un tempo di scadenza personalizzato, un identificatore di riferimento o un nome file personalizzato.
{
"url": "https://picsum.photos/seed/picsum/600/400",
"expiration": "1d",
"filename": "custom-filename.jpg",
"reference": "Optional reference ID"
}
Ottieni l'ID del file dalla risposta dell'API
Se il file è stato caricato correttamente sulla piattaforma, l'API restituirà una risposta valida in formato JSON come questa:
[
{
"id": "[Redacted ID]",
"format": "native",
"filename": "sample.jpg",
"size": 53697,
"mime": "image/jpeg",
"ext": "jpeg",
"kind": "image",
"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, per esempio 06248ed01a7a65946c0701, che rappresenta l'ID univoco del file che useremo successivamente per inviare il file come messaggio multimediale in una richiesta API separata.
Carica 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 i file, su un server remoto.
Qui puoi imparare di più su come funziona l'upload multipart form.
URL API di destinazione (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 affidarci a un meccanismo più complesso basato sul client HTTP che stiamo usando, il quale 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à evidenzieremo gli strumenti più popolari, come Postman, e i linguaggi più diffusi.
Il requisito fondamentale è definire il campo file nel form dei dati, altrimenti l'API restituirà un errore poiché questo campo è obbligatorio.
🤩 🤖 Wassenger è una piattaforma di comunicazione completa e una soluzione API per WhatsApp. Esplora oltre 100+ casi d'uso API e automatizza qualsiasi cosa su WhatsApp iscrivendoti a una prova gratuita e iniziando 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, consulta le opzioni alternative qui sotto.
Carica il file usando cURL
cURL è un client HTTP da riga di comando popolare e utile.
Puoi caricare facilmente i file dalla riga di comando usando il comando seguente, dove path/to/image.jpg dovrebbe rappresentare il percorso del file che vuoi caricare dal tuo disco locale:
curl \
-F file=@path/to/image.jpg \
-H 'Token: $API-TOKEN' \
https://api.wassenger.com/v1/files
Carica il file usando Postman
Postman è uno strumento versatile e utile per testare e fare 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
Carica il file usando 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/image.jpg'
# 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/image.jpg';
// 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/image.jpg';
// 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/image.jpg"
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)
}
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/image.jpg");
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/image.jpg") 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/image.jpg"))
.getBody()
🤩 🤖 Wassenger è una piattaforma di comunicazione completa e una soluzione API per WhatsApp. Esplora oltre 100+ casi d'uso API e automatizza qualsiasi cosa su WhatsApp iscrivendoti a una prova gratuita e iniziando in pochi minuti!
Test in tempo reale del caricamento file tramite API
Esplora il nostro tester API live
Inviare messaggi multimediali a un numero di telefono
Inviare un nuovo messaggio multimediale tramite API è semplice, devi solo conoscere il numero di telefono di destinazione nel formato E164 e l'ID del file caricato (esadecimale di 24 caratteri) che puoi ottenere dalla lista dei file caricati qui o dalla lista dei file caricati tramite API.
Puoi inviare messaggi a qualsiasi numero di telefono nel mondo che abbia un account WhatsApp, non è necessario aggiungere il numero come contatto nell'agenda del tuo dispositivo mobile.
Prepara la richiesta
URL API di destinazione (POST)
https://api.wassenger.com/v1/messages
Header HTTPS richiesti
Content-Type: application/json
Token: $API_KEY
Corpo della richiesta in formato JSON
{
"phone": "+12345678900",
"message": "This is a media message example 😀",
"media": {
"file": "UPLOADED FILE ID GOES HERE"
}
}
Ora puoi inviare il messaggio multimediale tramite API.
Inviare messaggi multimediali a un gruppo
Molto simile allo scenario precedente, puoi anche inviare messaggi multimediali alle chat di gruppo.
Per inviare messaggi a un gruppo, devi essere partecipante con il permesso di inviare messaggi. Se sei l'amministratore del gruppo avrai i permessi completi per inviare messaggi.
Prepara la richiesta
URL API di destinazione (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": "120363163556487865@g.us",
"message": "This is a media message example sent a group 😀",
"media": {
"file": "UPLOADED FILE ID GOES HERE"
}
}
Test dal vivo: invio di messaggi multimediali tramite API
Ora puoi eseguire, fare debug e testare l'API direttamente dal tuo browser, esplorare e provare più esempi API e ottenere con un clic snippet di codice pronti all'uso disponibili in più di 15 linguaggi di programmazione 😎
🤩 🤖 Wassenger è una piattaforma di comunicazione completa e una soluzione API per WhatsApp. Esplora oltre 100+ casi d'uso API e automatizza qualsiasi cosa su WhatsApp iscrivendoti a una prova gratuita e iniziando in pochi minuti!
FAQ
Che tipi di file multimediali possono essere inviati?
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 inviare più richieste API, una per ogni numero di telefono di destinazione.
Ad esempio, se vuoi inviare un messaggio a 10 numeri di telefono, dovrai inviare 10 richieste HTTPS indipendenti all'API.
Non esiste l'opzione per inviare più messaggi in una singola richiesta API.
Come verificare se un numero di telefono può ricevere messaggi WhatsApp
Puoi verificare 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 numero di telefono dato esiste su WhatsApp o meno.
L'unico requisito è avere almeno un numero WhatsApp connesso alla piattaforma nel tuo account attuale.
Per maggiori dettagli, consulta la documentazione dell'endpoint API qui.
Prima di verificare se un numero di telefono esiste su WhatsApp, puoi anche convalidare e normalizzare il formato di una lista di numeri di telefono usando l'endpoint numbers validator dell'API. Questo endpoint valida solo il corretto formato E164, ma non verifica se il numero di telefono esista effettivamente su WhatsApp.
Nota: il numero di verifiche WhatsApp è limitato mensilmente 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 sugli 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:








