Czekając na odpowiedź tekstowy z Facebooka messenger bot

głosy
1

Piszę Facebook Messenger bot i próbuję zapisać odpowiedź tekst po odświeżenie strony. Co mam na myśli przez to mam komunikat, który wysyła wiadomość do tyłu i w zależności od tego, która opcja wybiorą, mogą wpisać wiadomość z powrotem i przechowywać ten tekst. Problemem jest to, chcę tylko, aby zapisać ten tekst po wybraniu opcji na stanowisko tylnym komunikacie. Również tekst może być cokolwiek, więc nie mogę napisać, jeśli oświadczenie o nim.

Tu jest mój kodu:

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

Wszystko jest skonfigurowany i uruchomiony. Ale po otrzymaniu postback chcę czekać na odpowiedź od użytkownika przed zakończeniem więc mogę zapisać tekst. Tak jak mówiłem wcześniej, może to być cokolwiek, co oznacza, że ​​nie można po prostu napisać if tak jak ja z „start”. Ja też tylko chcesz zapisać tekst po kliknięciu przycisku ogłaszania zwrotnego.

Myślałam o dodanie pętli while i czeka na tekst, aby być odebrane przed zakończeniem funkcji ogłaszania zwrotnego, ale nie mógł zrozumieć.

Więc jak będę czekać na tekst po Wysłałem wiadomość z odświeżenie strony?

Jakakolwiek pomoc się przyda, dzięki!

Utwórz 10/05/2016 o 15:31
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

W zasadzie nie ma sposobu, aby zrobić dla swojego zapotrzebowania. Więc co tylko można było zrobić, to poprosić użytkownika o wpisanie tekstu z niektórych znaków przedrostka, na przykład z „?” lub „#” lub coś innego, że można analizować.

Odpowiedział 17/05/2016 o 06:34
źródło użytkownik

głosy
1

Próbowałem również przez długi czas, aby znaleźć sposób, aby zapisać tekst wysyłany przez nadawcę przy użyciu identyfikatory wiadomości i komunikatów razy bezskutecznie. Jedyna technika, który pracował dla mnie było deklarując zmienną globalną o nazwie „państwo”, a następnie na końcu każdej wiadomości wysyłanej że ja, zmienić wartość zmiennej „państwowego” to coś jak „001” lub „002”. Jako takie, gdybym chciał uzyskać dostęp do odpowiedzi do konkretnej wiadomości wysłałem, chciałbym umieścić if (state === '001'). Oto przykład:

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

Mam nadzieję, że to pomoże!

Odpowiedział 13/09/2017 o 00:04
źródło użytkownik

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