Vuoi rendere la comunicazione del tuo business su WhatsApp più efficace? Questo tutorial ti mostrerà come inviare messaggi ai numeri di telefono memorizzati in un file Google Sheets CSV usando Python, la libreria requests e la Wassenger API. Imparerai a scaricare il file CSV da Google Sheets, leggere i numeri di telefono e i messaggi, e inviarli automaticamente con Wassenger.
🫣 Non vuoi usare la programmazione? Nessun problema! Esplora la nostra nuova funzionalità no-code WhatsApp Campaigns. Importa i tuoi contatti, definisci un messaggio, imposta una data di consegna e rilassati! 🥳 🥳
Questo articolo è solo un piccolo assaggio di tutte le funzionalità dell'API. Esplora dozzine di casi d'uso ed esempi di codice pronti all'uso qui.
Prerequisiti
- Conoscenze di base di Python
- Python 3 installato sul tuo computer
- Un editor di testo per scrivere codice (es: Visual Studio Code, Atom, Vim)
- Un token API di Wassenger (API token) (puoi ottenerlo registrandoti qui)
🤩 🤖 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 registrandoti per una prova gratuita e inizia in pochi minuti**!**
Installa i pacchetti richiesti
Per prima cosa, crea una nuova directory per il tuo progetto e navigaci nel terminale. Poi esegui i seguenti comandi per installare le librerie necessarie:
pip install requests pandas
Prepara il file CSV di Google Sheets
Crea un nuovo documento Google Sheets e compilalo con due colonne:
- Prima colonna: numero di telefono in formato E164 format con il prefisso internazionale.
- Seconda colonna: messaggio di testo da inviare al numero di telefono di destinazione.
Il documento Google Sheets dovrebbe avere almeno due colonne e apparire così:
L'equivalente del documento Sheets esportato come CSV dovrebbe apparire così:
(+447362053576,
'👋 Welcome to {{your-business-name}}! Thanks for signing up.We are just a message away!' +
447362053576,
"💐 Your order has been shipped.Tracking number is {{tracking-number}}.Don't hesitate to reach out to if you need help! 🤗");
Ottieni l'URL di download del tuo documento Google Sheets
- Clicca su “File” in alto a sinistra.
- Vai su “Condividi” > “Pubblica sul web”.
- Nella scheda “Link”, seleziona “Comma-separated values (.csv)” dal menu a tendina.
- Seleziona la pagina del foglio desiderata con i dati rilevanti: per impostazione predefinita la prima.
- Clicca su “Pubblica” e copia l'URL.
🤩 🤖 Wassenger è una soluzione API completa per WhatsApp. Registrati per una prova gratuita di 7 giorni e inizia in pochi minuti!
Invia messaggi di testo
Crea un nuovo file chiamato send_messages.py nella directory del progetto e aggiungi il seguente codice:
import requests
import pandas as pd
# Replace this with the URL of your published Google Sheets CSV file
# See the indications above to obtain the Google Sheets download URL to enter here
google_sheets_csv_url = 'ENTER_GOOGLE_SHEETS_CSV_URL_HERE'
# Replace this with your Wassenger API token
# Get your API token here: https://app.wassenger.com/apikeys
token = 'API_TOKEN_GOES_HERE'
# Optionally specify the target WhatsApp device ID connected to Wassenger
# you want to use for messages delivery(24 characters hexadecimal value)
device = 'DEVICE_ID'
# Define the headers for the API request
headers = {
'Content-Type': 'application/json',
'Authorization': f"{token}"
}
# Define the URL for the Wassenger API
api_url = 'https://api.wassenger.com/v1/messages'
# Read the Google Sheets CSV file and parse it as a CSV
data = pd.read_csv(google_sheets_csv_url)
# Iterate through the DataFrame rows
for index, row in data.iterrows():
phone_number = row[0]
message = row[1]
# Create the payload for the API request
payload = {
'phone': phone_number,
'body': message,
'device': device
}
# Send the message using the Wassenger API
response = requests.post(api_url, headers=headers, json=payload)
# Check if the API request was successful
if response.status_code == 200:
print(f"Message sent to {phone_number}: {message}")
else:
print(f"Failed to send message to {phone_number}: {response.text}")
print("Finished sending messages")
Esegui e prova il codice nel cloud senza installare alcun software sul tuo computer. Crea un account gratuito su Replit e inizia in pochi minuti.
Invia messaggi multimediali
In questo esempio creeremo un programma diverso chiamato send_media.py per inviare più messaggi con immagini a diversi numeri di telefono caricati da un documento Google Sheets.
Per inviare un messaggio multimediale, il modo più semplice è fornire un URL di download del file. Se il tuo file non è già caricato da qualche parte, puoi caricarlo su Google Drive e rendere il file pubblicamente disponibile per essere scaricato dall'API e inviato successivamente.
Esempio di URL di download da un file pubblico in Google Drive:
https://drive.google.com/uc?id=1RG3CAPiwiFlFATUlIIwhk0RrbEU4PgVP&export=download
Importante: l'URL di download fornito deve restituire il contenuto binario del file, altrimenti fallirà.
Crea un nuovo file chiamato send_media.py nella directory del progetto e aggiungi il seguente codice:
import requests
import csv
from io import StringIO
# Replace this with the URL of your published Google Sheets CSV file
# See the indications above to obtain the Google Sheets download URL to enter here
google_sheets_csv_url = 'ENTER_GOOGLE_SHEETS_CSV_URL_HERE'
# Set the download URL of the file to be sent.
# The file must be publicly accessible from the Internet and return the file binary content
# You can also upload a local file in Google Drive and make the file publicly available for download
# Accepted file formats are: images(JPEG, WEBP, PNG), video(MP4), audio(MP3, OGG) and documents(PDF, XLSX, DOCX, ZIP...)
file_url = 'https://picsum.photos/seed/picsum/600/500'
# Replace this with your API token
# Get your API token here: YOUR_CONSOLE_URL/apikeys
token = 'API_TOKEN_GOES_HERE'
# Optionally specify the target device ID connected to the API
# you want to use for messages delivery(24 characters hexadecimal value)
device = 'DEVICE_ID'
# Define headers for the API request
headers = {
'Content-Type': 'application/json',
'Authorization': f'{token}'
}
# Define URLs for the API
base_url = 'https://api.wassenger.com/v1'
url = f'{base_url}/messages'
files_url = f'{base_url}/files'
def upload_file(url):
body = {'url': url}
try:
response = requests.post(files_url, json=body, headers=headers)
response.raise_for_status()
return response.json()['id']
except requests.exceptions.HTTPError as error:
if error.response.status_code == 409 and error.response.json():
return error.response.json()['meta']['file']
print(f'Failed to upload file: {error.response.text}')
return None
def normalize_phone(phone):
return f"+{phone.replace('\\D', '')}"
def send_message(phone, message, file):
body = {
'phone': phone,
'message': message.strip(),
'device': device,
'media': {'file': file}
}
try:
response = requests.post(url, json=body, headers=headers)
response.raise_for_status()
print(f" == > Message created: {phone}")
except requests.exceptions.HTTPError as error:
print(f'Failed to create message to {phone}: {error.response.text}')
def main():
try:
if not file_url:
raise ValueError('Missing required fileUrl')
print('=> Downloading Google Sheets CSV file...')
response = requests.get(google_sheets_csv_url)
response.raise_for_status()
data = response.text
records = csv.reader(StringIO(data))
print('=> Uploading file...')
file_id = upload_file(file_url)
if not file_id:
raise ValueError('Failed to upload file: check the error')
print('=> Processing messages...')
for phone, message in records:
if not phone or not message:
continue
number = normalize_phone(phone)
if number and len(number) >= 8 and message:
send_message(number, message, file_id)
except ValueError as error:
print(f'Error: {error}')
except requests.exceptions.HTTPError as error:
print(f'Error: {error.response.text}')
if __name__ == "__main__":
main()
Esegui e prova il codice nel cloud senza installare alcun software sul tuo computer. Crea un account gratuito su Replit e inizia in pochi minuti.
Sostituisci l'URL di Google Sheets per esportare come CSV
Nei file send_messages.py e send_media.py, assicurati di aver sostituito l'URL del CSV di Google Sheets e il tuo token API di Wassenger reale:
# Replace this with the URL of your published Google Sheets CSV file
google_sheets_csv_url = 'ENTER_GOOGLE_SHEETS_CSV_URL_HERE'
Vedi le indicazioni sopra per ottenere l'URL di download di Google Sheets da inserire qui.
🤩 🤖 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 registrandoti per una prova gratuita e inizia in pochi minuti**!**
Sostituisci il token API
Nel file send_messages.py, assicurati di aver definito il token API del tuo account Wassenger reale:
# Replace this with your Wassenger API token
token = 'API_TOKEN_GOES_HERE'
Opzionalmente, se hai più numeri WhatsApp connessi al tuo account Wassenger, puoi specificare quale numero WhatsApp utilizzare per la consegna dei messaggi specificando l'ID univoco del device di Wassenger (valore esadecimale di 24 caratteri) nella seguente riga:
# Optionally specify the target WhatsApp device ID connected to Wassenger
# you want to use for messages delivery(24 characters hexadecimal value)
device = 'DEVICE_ID'
Esegui il programma
Prima di eseguire il programma, se prevedi di inviare centinaia di messaggi di seguito, ti consigliamo di impostare una velocità di consegna dei messaggi più bassa, non più di 2–3 messaggi al minuto, per prevenire problemi di ban dovuti alle politiche anti-spam di WhatsApp. Scopri di più sulle best practice e su come ridurre il rischio qui.
Esegui il programma nel cloud
Puoi eseguire il programma gratuitamente nel cloud su Replit.com senza installare alcun software sul tuo computer.
Crea semplicemente un nuovo progetto e copia & incolla il codice fornito, poi clicca su “Run” per inviare i messaggi. È così semplice 😀
Esegui il programma sul tuo computer
Apri un terminale nella directory del progetto ed esegui il seguente comando per eseguire lo script send_messages.py o send_media.py:
python send_messages.py
Analogamente, puoi eseguire lo script send_media.py per inviare messaggi multimediali:
python send_media.py
Se tutto è configurato correttamente, dovresti vedere un output che indica che i messaggi sono stati creati con successo:
=> Message created: +123456789009
=> Message created: +123456789009
=> Message created: +123456789009
Nota: i messaggi verranno aggiunti alla coda di consegna del tuo numero e consegnati in modo asincrono in background nel tempo, in base al limite di velocità di consegna dei messaggi per minuto della tua sottoscrizione o alla velocità di consegna configurata manualmente nelle impostazioni del tuo numero.
I messaggi possono richiedere diversi minuti o ore, a seconda di quanti ne hai creati, per essere effettivamente consegnati ai numeri di telefono di destinazione tramite WhatsApp. Puoi monitorare l'avanzamento della consegna dei messaggi nel pannello web o automaticamente usando gli eventi webhook.
Conclusione
In questo tutorial, hai imparato come inviare messaggi ai numeri di telefono memorizzati in un file CSV di Google Sheets usando Python e la Wassenger API.
Puoi aggiornare il documento Google Sheets ed eseguire nuovamente il programma ogni volta che vuoi inviare nuovi messaggi tramite il tuo numero WhatsApp connesso a Wassenger.
Puoi inoltre personalizzare ulteriormente lo script per gestire colonne aggiuntive, creare diversi tipi di messaggi o integrarlo con il tuo software secondo le tue esigenze.
🤩 🤖 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 registrandoti per una prova gratuita e inizia in pochi minuti**!**






