Флажок FB messenger messaging_optins отправить сообщение пользователю user_ref_id не работает "Вы не можете отправлять сообщения на этот идентификатор"

Я попытался отправить сообщение своему клиенту после того, как они разместили заказ, если они отметят плагин флажка 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 08.04.2021 13:12

@CBroe Я просто обновляю сообщение кодом, когда пытаюсь отправить сообщение. Спасибо

xuweisen 09.04.2021 05:22

@CBroe Спасибо! Я нашел ответ!

xuweisen 09.04.2021 06:18
Почему Facebook остановился на PHP
Почему Facebook остановился на PHP
PHP имеет долгую историю с Facebook, и это был основной язык программирования, использовавшийся для создания сайта в первые годы его существования....
0
3
14
1

Ответы 1

Я уже нашел свои ошибки

Я использую 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);

Другие вопросы по теме

Ошибка разрешения Facebook возникает, даже если она у меня есть
Ошибка API Facebook Marketing: неподдерживаемый запрос на получение. Объект с идентификатором XXXXXX не существует, не может быть загружен из-за отсутствия разрешений
Можно ли публиковать сообщения на собственной временной шкале в Facebook с помощью GraphAPI (не на странице или в группе, а на собственной временной шкале пользователя)
Программно создать пользователя FB
Плагин комментариев Facebook - как удалить верхний раздел (комментарии и сортировка)
Получение данных бизнес-аккаунта Instagram из API-интерфейсов Facebook Graph
Что мне делать, чтобы протестировать работу моего чат-бота в Facebook с помощью тестового пользователя, созданного в приложении Facebook?
Войдите в Instagram, используя новый API
Получить обновленный URL-адрес фотографии профиля пользователя facebook
Форматирование баланса доступно из facebook api