У меня есть файл Excel с номерами телефонов и именами, и я хочу персонализировать каждое сообщение, включив имя контакта в текст сообщения.
Вот код Python, который я использую (упрощенный):
Код: Выделить всё
import pandas as pd
import requests
import time
ACCESS_TOKEN = ""
EXCEL_FILE = "contacts.xlsx"
PHONE_COLUMN = "phone"
NAME_COLUMN = "name"
IMAGE_LINK = "https://raw.githubusercontent.com/ghazdevlper-ux/Images/main/Independece.JPG"
DELAY_SECONDS = 5
df = pd.read_excel(EXCEL_FILE)
contacts = df[[PHONE_COLUMN, NAME_COLUMN]].dropna()
url = "https://graph.facebook.com/v22.0//messages"
headers = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
"Content-Type": "application/json"
}
for _, row in contacts.iterrows():
phone = str(row[PHONE_COLUMN])
name = str(row[NAME_COLUMN])
payload = {
"messaging_product": "whatsapp",
"to": phone,
"type": "template",
"template": {
"name": "image_template",
"language": {"code": "en"},
"components": [
{
"type": "header",
"parameters": [
{
"type": "image",
"image": {"link": IMAGE_LINK}
}
]
},
{
"type": "body",
"parameters": [
{"type": "text", "text": name}
]
}
]
}
}
try:
response = requests.post(url, headers=headers, json=payload)
print(f"Sent to {phone}: {response.status_code} - {response.text}")
except Exception as e:
print(f"Error sending to {phone}: {e}")
time.sleep(DELAY_SECONDS)
Что я пробовал до сих пор:
- Дважды проверил мой ACCESS_TOKEN и идентификатор номера телефона
- Пытался использовать прямой URL-адрес изображения из GitHub (общедоступный)
- Проверено, что мой шаблон сообщения имеет заголовок типа image
Подробнее здесь: https://stackoverflow.com/questions/797 ... -cloud-api
Мобильная версия