Várakozás egy szöveges válasz a Facebook messenger bot

szavazat
1

Írok Facebookon messenger bot, és igyekszem, hogy tárolja a szöveges válasz után postback. Mit értek ez van egy üzenetet, hogy küld egy bejegyzést vissza, és attól függően, hogy melyik megoldást választja, akkor írja be az üzenetet vissza, és tárolni, hogy a szöveget. A probléma az, csak azt akarom, hogy tárolja ezt a szöveget, miután válasszon egy lehetőséget a poszt vissza üzenetet. Szintén a szöveg bármi lehet, így nem tudok írni egy nyilatkozatot, ha érte.

Itt van a kód:

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

Minden be van állítva és működik. De amikor a postback érkezik szeretnék várni a választ a felhasználó befejezése előtt, így tudom menteni a szöveget. Mint korábban mondtam, hogy bármi lehet vagyis nem tudok csak írni egy nyilatkozatot, mint ha én az „Start”. Én is csak menteni szeretné a szöveget a kattintás után a postback gombra.

Azon gondolkodtam, hozzátéve, while, és várja a szöveget kapott befejezése előtt postback funkciót, de nem tudott rájönni.

Szóval hogyan várok szöveg után küldtem egy üzenetet egy postback?

Minden segítséget előre is köszönjük, köszönjük!

A kérdést 10/05/2016 15:31
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
0

Alapvetően nincs módja a követelménynek. Tehát a dolog csak tehetett, megkérdezzük a felhasználót, hogy adja meg a szöveget néhány karakter előtag, például egy „?” vagy „#”, vagy valami mást, amit lehet elemezni.

Válaszolt 17/05/2016 06:34
a forrás felhasználó

szavazat
1

Én is próbáltam sokáig, hogy megtalálja a módját, hogy tárolja a szöveget küldte a küldőt üzenet azonosítók és az üzenet alkalommal hiába. Az egyetlen módszer, hogy dolgozott nekem volt nyilvánító globális változó úgynevezett „állami”, majd a végén minden üzenetet küldök, tudom megváltoztatni a változó értékét „állam” valami hasonló „001” vagy „002”. Mint ilyen, ha akartam, hogy hozzáférjen a válasz, hogy egy adott üzenet küldtem, azt fel if (state === '001'). Itt egy példa:

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

Remélem ez segít!

Válaszolt 13/09/2017 00:04
a forrás felhasználó

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