Se așteaptă un răspuns text cu un mesager Facebook bot

voturi
1

I-am scris un mesager Facebook bot și am încercat pentru a stoca un răspuns de text după o postback. Ceea ce vreau sa spun prin asta este am un mesaj care trimite un mesaj și în funcție de ce opțiune ei aleg, ei pot introduce un mesaj înapoi și am stoca acel text. Problema este că vreau doar pentru a stoca acest text după ce selectați o opțiune pentru mesajul mesaj. De asemenea, textul poate fi orice, așa că nu pot scrie o declarație, dacă pentru ea.

Aici este codul meu:

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);
      }
    }
}

Totul este configurat și să fie difuzate. Dar când este primit postback Vreau să aștept un răspuns de la utilizator înainte de finisare, așa că am putea salva textul. Cum am spus mai devreme că poate fi ceva în sensul că nu pot doar să scrie o declarație, dacă așa cum am făcut-o cu „Start“. De asemenea, doresc doar pentru a salva textul după ce faceți clic pe butonul postback.

Mă gândeam la adăugarea de o buclă în timp și de așteptare pentru text să fie primite înainte de a termina funcția de finalizare a achiziției, dar nu a putut da seama.

Deci, cum mi-ar aștepta pentru textul după ce am trimis un mesaj cu un postback?

Orice ajutor este apreciat, multumesc!

Întrebat 10/05/2016 la 15:31
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
0

Practic nu există nici o modalitate de a face pentru dvs. cerință. Deci, lucru pe care numai că ar putea face este cere utilizatorului să introducă textul cu unele caractere în prefix, de exemplu, cu un „?“ sau „#“ sau altceva pe care le poate analiza.

Publicat 17/05/2016 la 06:34
sursa de către utilizator

voturi
1

Am încercat , de asemenea , pentru o lungă perioadă de timp pentru a găsi o modalitate de a stoca textul trimis de expeditor utilizând ID - uri de mesaje și mesaje de ori fără nici un rezultat. Singura tehnica pe care a lucrat pentru mine a fost declararea unei variabile globale numit „stat“ , iar apoi , la sfârșitul fiecărui mesaj pe care eu trimit, am schimba valoarea variabilei „stat“ la ceva de genul „001“ sau „002“. Ca atare, dacă am vrut să acceseze răspunsul la un anumit mesaj am trimis, aș pune if (state === '001'). Iată un exemplu:

var state = '000';

// if user sends me 'I want dogs'
    sendTextMessage(sender, "How many dogs?");
    state = '001';

// if user sends me 'I want cats'
    sendTextMessage(sender, "How many cats?);
    state = '002';

/* now if I want to access the user's response to how many cats they want, I simply write in an if statement:
if (state === '002' && /^\d+$/.test(text)) {
    var numberOfCatsWanted = text
}

// in this last part I essentially write 'if the state is '002' and the text contains numbers then a new variable will store the value of the text

Sper ca asta ajuta!

Publicat 13/09/2017 la 00:04
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more