Je suis en train d'écrire le chatbot pour facebook en utilisant php. La requête de Facebook est en cours de traitement par le fichier php. Et il est simlar à cette logique:
//got request from facebook
foreach ($data['entry'][0]['messaging'] as $message){
if (checkAnswer($message['sender']['id'], $command)){
$command = ;
$command = empty($message['postback']) ? $message['message']['text'] : $message['postback']['payload'];
$bot->send(new Message($message['sender']['id'], 'Thank you very much for participation!'));
}
}
function checkAnswer($id, $text){
//some logic;
}
Si deux messages provenant de différentes personnes sont envoyées en un instant j'observe à côté. L'appel de la fonction checkAnswer se trouve pas dans la file d'attente (I bien compris par l'enregistrement de la procédure d'exécution avec l'enregistrement de fichier). Par exemple, il peut être appelé à la demande 2 (demande de facebook), alors que la demande 1 n'est pas terminée. Et à cause de cela (je ne suis pas sûr de 100%), la variable $ id est pas toujours le même et j'ai la mauvaise exécution de l'algorithme ... Le fichier d'enregistrement de démarrage et d'arrêt est ici:
///////start////////////////////////
01:0:21 PM ID: 250 Text: 2
///////start////////////////////////
01:0:21 PM ID: 352 Text: 1
01:0:22 PM ID: 250 Text: 2
////////stop////////////////////////
01:0:22 PM ID: 352 Text: 1
////////stop////////////////////////
Je travaille avec apache2 et php7 et il est ma première application avec webservices. Pourriez-vous donner une idée de comment est-il possible de le réparer?













