@RMate

Как отправить последовательность сообщений в строгом порядке с помощью batch?

Всем привет!
Пишу маленького чат-бота, есть необходимость отправить последовательность сообщений.
Отправляю методом
$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);


и всё снова работает. И последовательность работает. только вот в сообщения, естественно, прилетает вставленная билеберда. Может подскажете куда её спрятать... если я вообще в правильную сторону двигаюсь. Спасибо.
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы