În Facebook Messenger API, cum pentru a preveni butonul de text postback sarcină utilă de a fi conectat la fereastra de chat pe clic?

voturi
1

TLDR; @ fund

Am întrebat următoarea întrebare în secțiunea bug-uri Facebook

NOTA: Aceasta este mai mult o sugestie de design platformă decât un bug, așa cum am reușit să găsească un feedback portal de chat API În prezent sunt construirea unui robot chat care permite utilizatorului să urmărească un scop. Se va spune ceva de genul „Te-ai dus la o plimbare pe 12 iulie 2016?“ și au Da / Nu butoanele de mai jos.
În prezent , în scopul de a trece intenția, ziua și boolean realizare am nevoie la șablonul un șir de caractere ca acest „== GOAL == realizat? <<< {goal_achieved} >>>, data urmărite [[[{date_tracked}]] ]“și de a folosi regex pentru a capta variabilele delimitate. Acest lucru este predispus la erori în alte parsing cazuri în care șirurile Templated în sarcina utilă sunt variabile introduse de utilizator , și anume dacă „{goal_achieved}“ au fost înlocuite cu variabila obiectivul „>> meditat“ , atunci regex care surprinde variabila ar putea eșua tiparului . S
-ar putea folosi sarcina utilă postback pentru a stoca un șir codificat JSON , dar problema cu acest lucru este faptul că șirul de sarcină utilă devine conectat la ieșire de utilizator și siruri de caractere JSON sunt un pic urât și confuz. provocările i se confruntă pot fi remediate cu ușurință în cazul în care sarcina utila nu a fost autentificat pentru utilizator log in schimb textul pentru butonul pentru a ajuta utilizatorul confirma butonul a fost apasat.
Dacă acest lucru nu este posibil, există orice alt sfat pentru date de codificare în sarcină utilă butonul?

a fost oferit următorul răspuns (Marcu Wiltse)

Bună Justin, Din păcate , în acest moment structura noastră sarcină utilă nu acceptă funcționalitatea pe care încercați să pună în aplicare. De la înțelegerea mea pe care doriți să utilizați Payload pentru a informa backend dacă utilizatorul realizat „obiectivul“ lor la acea dată specifică. Aș sugera că ați creat răspunsul dumneavoastră sarcină utilă pentru butonul din partea dvs. înainte de a trece - l la noi, care este , în principiu ideea JSON pe care ai avut inițial. Știu că acest lucru este un pic greoaie pentru a gestiona , dar răspunsul sarcina utila a trecut din spate este independentă de textul care a fost prevăzut cu firul mesager. Aș sugera că , de asemenea , încercați să dezinfecteze șirurile dacă sunteți îngrijorat un utilizator a furnizat anterior v - ar provoca o problemă cu regex dumneavoastră. Ar trebui să fie în măsură să pună în aplicare această opțiune în cazul în care datele de utilizator înainte este igienizat , pentru a evita orice probleme cu parsing regex / JSON. Deoarece aceasta este o chestiune de punere în aplicare va trebui să închidă acest raport este nevalid. Dacă sunteți încă în căutarea de perspective suplimentare și sfaturi concrete pentru punerea în aplicare a acestui flux vă rugăm să posta pentru a overflow stack în cazul în care avem Facebook Ingineri și o gamă largă de membri ai comunității , care contribuie , de asemenea. http://facebook.stackoverflow.com/ Aveți grijă și cele mai bune urări cu botul messenger. marcă

Această teză a fost deosebit de clar:

Știu că acest lucru este un pic greoaie pentru a gestiona, dar răspunsul sarcina utila a trecut din spate este independentă de textul care a fost prevăzut cu firul mesager.

TLDR; Poate cineva să mă informeze cu privire la modul de a preveni butonul de logare șirul de sarcină utilă, astfel încât să pot folosi și pentru a JSON pentru aplicația mea fără ca utilizatorul să vadă asta?

Întrebat 02/08/2016 la 21:59
sursa de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
1

Din înțelegerea mea spui că atunci când apăsați un buton de sarcina utilă în loc de textul butonului se afișează.

Ai de a defini butoane de genul asta?

    {
      type: "postback",
      title: "View Details",
      payload: "details:12345"
    }

Mi-ar recomanda eliminarea orice caractere speciale care ar pune cu parsarea de sarcină utilă dumneavoastră. Atâta timp cât caracterele speciale nu sunt esențiale pentru experiența utilizatorului acest lucru este, probabil, o soluție fină.

Dacă acest lucru nu rezolvă problema:

Puteți adăuga o captură de ecran butonul ce apăsați, iar mesajul de jurnal pe care îl vorbești? Din înțelegerea mea spui că atunci când apăsați un buton de sarcina utilă în loc de textul butonului se afișează. Asta nu e cazul pentru mine, textul meu butoane apare la apăsarea unui buton.

Publicat 03/08/2016 la 16:24
sursa de către utilizator

voturi
2

Asigurați - vă că să comentați sendTextMessage()în dumneavoastră receivedPostback()apel:

function receivedPostback(event){
    sendTextMessage(senderID, event.postback.payload);
}
Publicat 24/10/2016 la 16:01
sursa de către utilizator

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