Γράφω ένα αγγελιοφόρο bot Facebook και προσπαθώ να αποθηκεύσετε μια απάντηση κείμενο μετά από μια postback. Τι εννοώ με αυτό είναι ότι έχω ένα μήνυμα που στέλνει ένα μήνυμα πίσω και ανάλογα με το ποια επιλογή θα επιλέξουν, μπορούν να πληκτρολογήσετε ένα μήνυμα πίσω και να αποθηκεύσει αυτό το κείμενο. Το πρόβλημα είναι ότι το μόνο που θέλουν να αποθηκεύσετε το κείμενο αυτό αφού επιλέξετε μια επιλογή για τη θέση πίσω μήνυμα. Επίσης, το κείμενο μπορεί να είναι οτιδήποτε, οπότε δεν μπορώ να γράψω μια δήλωση if για αυτό.
Εδώ είναι ο κωδικός μου:
app.post('/', function (req, res) {
messaging_events = req.body.entry[0].messaging;
for (i = 0; i < messaging_events.length; i++) {
event = req.body.entry[0].messaging[i];
sender = event.sender.id;
if (event.message && event.message.text) {
text = event.message.text;
if (text == Start) {
sendTextMessage(sender, Hey User! I'm a bot);
}
}
else if (event.postback) {
// These are for chosing availibility
if (JSON.stringify(event.postback) == '{payload:postback}') {
setTextMessage(sender, Postback recieved);
}
}
}
Τα πάντα είναι συσταθεί και να λειτουργήσει. Αλλά όταν λαμβάνεται η postback θέλω να περιμένω απάντηση από το χρήστη πριν την ολοκλήρωση ώστε να μπορώ να αποθηκεύσετε το κείμενο. Όπως είπα νωρίτερα μπορεί να είναι οτιδήποτε, πράγμα που σημαίνει ότι δεν μπορούμε απλά να γράψετε μια εντολή if, όπως έκανα με το «Start». Επίσης, μόνο θέλετε να αποθηκεύσετε το κείμενο μετά κάντε κλικ στο κουμπί postback.
Σκεφτόμουν σχετικά με την προσθήκη ενός βρόχου while και να περιμένει για το κείμενο που πρόκειται να λάβει πριν από την ολοκλήρωση της λειτουργίας postback, αλλά δεν μπορούσα να το καταλάβω.
Λοιπόν, πώς θα περιμένω για το κείμενο μετά έστειλα ένα μήνυμα με postback;
Οποιαδήποτε βοήθεια είναι ευπρόσδεκτη, ευχαριστώ!













