Всем привет!
Пишу маленького чат-бота, есть необходимость отправить последовательность сообщений.
Отправляю методом
$fb = new \Facebook\Facebook([ данные подключения ]);
$batch = [];
foreach ($messages as $msg) { // messages - уже валидное сообщение для фейсбука
$batch[] = $fb->request('POST', '/me/messages', $msg);
}
$fb->sendBatchRequest($batch);
И всё работает, но вот не задача, последовательность сообщений нарушается. Оно и не удивительно, в документации пишут, что каждый запрос выполняется асинхронно.
есть
Официальный пример, и он работает... пробовал так:
$fb = new \Facebook\Facebook([ данные подключения ]);
$batch = [];
$i = 0;
foreach ($messages as $msg) { // messages - уже валидное сообщение для фейсбука
if($i > 0)
$msg['message']['text'] = "{result=p_$i:$.*}" . $msg['text'];
$batch['p_' . $i++] = $fb->request('POST', '/me/messages', $msg);
}
$fb->sendBatchRequest($batch);
и всё снова работает. И последовательность работает. только вот в сообщения, естественно, прилетает вставленная билеберда. Может подскажете куда её спрятать... если я вообще в правильную сторону двигаюсь. Спасибо.