Я попытался отправить сообщение своему клиенту после того, как они разместили заказ, если они отметят плагин флажка FB Messenger на странице оформления заказа.
Я уже шаг за шагом следую документации FB этого плагина. https://developers.facebook.com/docs/messenger-platform/discovery/checkbox-plugin/
Все в порядке и работает, пока я не хочу попытаться отправить сообщение на user_ref_id, который я определил ранее, и он просто выдал мне ошибку.
{
"error": {
"message": "(#100) Parameter error: You cannot send messages to this id",
"type": "OAuthException",
"code": 100,
"fbtrace_id": "Aev08w-rkwIfurCKj79g2R0"
}
Мне удалось получить webhook messaging_optins, как показано ниже.
{
"value": {
"object": "page",
"entry": [{
"id": "xxxxx",
"time": 1617868589319,
"messaging": [{
"recipient": {
"id": "xxxxx"
},
"timestamp": 1617868589319,
"optin": {
"ref": "test=haha",
"user_ref": "2020092411511430212"
}
}]
}]
}
Я уже проверял, что мои app_id и page_id верны, и я также использую access_token, который я генерирую из раздела Messenger разработчика FB, тоже правильный.
Вот мой код для отправки сообщения
$messageData = [
"recipient" => [
"id" => '202009241151143024'
],
"message" => [
"text" => 'hello'
]
];
$ch = curl_init('https://graph.facebook.com/v2.6/me/messages?access_token=xxx');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($messageData));
$result = curl_exec($ch);
curl_exec($ch);
Не знаю, где ошибки или может я пропустил какой-то шаг при настройке?
Заранее спасибо.
@CBroe Я просто обновляю сообщение кодом, когда пытаюсь отправить сообщение. Спасибо
@CBroe Спасибо! Я нашел ответ!

Я уже нашел свои ошибки
Я использую id вместо user_ref, когда пытался отправить сообщение своему клиенту.
Вот код исправления при отправке сообщения.
$messageData = [
"recipient" => [
"user_ref" => '202009241151143024'
],
"message" => [
"text" => 'hello'
]
];
$ch = curl_init('https://graph.facebook.com/v2.6/me/messages?access_token=xxx');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($messageData));
$result = curl_exec($ch);
curl_exec($ch);
Покажите нам, как вы на самом деле пытаетесь отправить сообщение.