Отправить шаблон с переменными в WhatsApp Cloud APIPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Отправить шаблон с переменными в WhatsApp Cloud API

Сообщение Anonymous »

Я пытаюсь отправить шаблонное сообщение на PHP с помощью WhatsApp Cloud API и пытаюсь найти простое решение, но я слишком долго смотрел на код и был бы рад второй паре глаза, чтобы определить, где я ошибаюсь.
Я постоянно получаю сообщение об ошибке:

Код: Выделить всё

(#100) Param template['components'][0] must be a JSON object.
Глядя на документы WhatsApp по отправке шаблона, я вижу, что мне нужно отправить компоненты/параметры в виде массива объектов.
Вот мой текущий код:

Код: Выделить всё

$var1 = array('type' => 'text', 'text' => $clientName);
$var2 = array('type' => 'text', 'text' => $data['meetingDate']);
$var3 = array('type' => 'text', 'text' => $data['meetingStart']);
$var4 = array('type' => 'text', 'text' => $data['meetingLocation']);
$data = [
"messaging_product" => "whatsapp",
"to" => $clientNumber,
"type" => "template",
"template" => array(
"name" => "brufton_meeting",
"language" => array(
"code" => "en_GB"
),
"components" => array("type" => "body",  "parameters" => array($var1, $var2, $var3, $var4))
),
];
$whatsappData = json_encode($data, JSON_FORCE_OBJECT);
$whatsappHeader = array(
'Authorization: Bearer ' . {TOKEN},
'Content-Type: application/json'
);
$ch = curl_init("https://graph.facebook.com/v21.0/".$_SESSION['whatsappNumberID']."/messages");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $whatsappData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $whatsappHeader);
$resultWhatsApp = curl_exec($ch);
Когда это загружается, я запускаю print_r для $whatsappData:

Код: Выделить всё

{"messaging_product":"whatsapp","to":"+447719303165","type":"template","template":{"name":"brufton_meeting","language":{"code":"en_GB"},"components":{"type":"body","parameters":{"0":{"type":"text","text":"Andrew Broughton"},"1":{"type":"text","text":"Monday 1st May 2023"},"2":{"type":"text","text":"11:30"},"3":{"type":"text","text":"https:\/\/zoom.us\/j\/7797022566"}}}}}
Итак, я вижу, что параметры не размечаются как объект и не добавляются как переменные, я просто не могу это исправить и хожу по кругу какое-то время мне не хватает (весьма вероятно) очевидного решения!
Я протестировал это, используя шаблон без переменных, и он работает нормально. Я также дважды проверил написание шаблона и языка. Я застреваю только при использовании шаблона с переменными, поэтому я достаточно уверен, что проблема связана с этим кодом, а не с проблемой аутентификации.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -cloud-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»