Γράφω το chatbot για το Facebook που χρησιμοποιούν php. Το ερώτημα από το facebook επεξεργάζεται μέσα από το αρχείο php. Και είναι Όμοια με αυτή τη λογική:
//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;
}
Αν οι δύο μηνύματα από διαφορετικά πρόσωπα στέλνονται σε μια στιγμή είμαι δίπλα παρατήρηση. κλήση της συνάρτησης checkAnswer δεν είναι στην ουρά (κατάλαβα από την καταγραφή της διαδικασίας εκτέλεσης με την καταγραφή σε αρχείο). Για παράδειγμα, μπορεί να κληθεί από αίτηση 2 (αίτηση facebook), ενώ αίτηση 1 δεν έχει ολοκληρωθεί. Και λόγω του ότι (δεν είμαι σίγουρος για το 100%), η μεταβλητή $ id δεν είναι πάντα η ίδια και έχω την λάθος εκτέλεση αλγορίθμου ... Το αρχείο καταγραφής της έναρξης και διακοπής είναι εδώ:
///////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////////////////////////
Εργάζομαι με apache2 και php7 και είναι η πρώτη μου εφαρμογή με webservices. Θα μπορούσατε να δώσετε κάποια ιδέα για το πώς είναι δυνατόν να το διορθώσω;













