V Facebook Messenger API, jak zabránit tlačítko postback užitečného textu z právě přihlášen k chatu okno na kliknutí?

hlasů
1

TLDR; @ dno

Ptal jsem se na následující otázku v sekci Facebook bugs

Poznámka: Jedná se spíše o konstrukční návrh platformě než chyby, když jsem nedokázal najít Chat API zpětnovazební portál V současné době Stavím chat bot, který umožňuje uživateli sledovat cíl. To bude říkat něco jako „vy jste šli na procházku na 12. července 2016?“ a mají Ano / Ne pod tlačítky.
V současné době, aby se projít záměr, den a úspěchu boolean musím šablony řetězec jako toto „== == GOAL dosaženo? <<< {} goal_achieved >>>, datum sledovány [[[{date_tracked}]] ]“a pomocí regulárních výrazů zachytit vymezené proměnné. To je náchylný k analýze chyb v ostatních případech, kdy podle šablony řetězce v užitečného zatížení jsou uživatelsky vstupních proměnných tedy v případě, že '{goal_achieved} byly nahrazeny brankové proměnnou ‚>> meditoval“ pak regex, který zachycuje templátovanou proměnnou může selhat .
Dalo by se použít postback náklad uložit řetězec JSON zakódovaný ale problém s tím je, že náklad řetězec dostane přihlášeni do uživatelského výstupu a JSON řetězce jsou trochu ošklivé a matoucí. výzvy i čelí by mohla být snadno napravit v případě, že užitečné zatížení nebyl přihlášen k uživateli Namísto protokolu text pro tlačítko pomoci uživatel potvrdit tlačítko klikl.
Pokud to není možné, je nějaká jiná doporučení pro kódování dat na tlačítko užitečného zatížení?

Následující odpověď byla nabídnuta (Mark Wiltse)

Hi Justin, bohužel v této době náš náklad struktura nepodporuje funkce, které se snaží realizovat. Z mého chápání, že chcete použít Payload informovat svého backend v případě, že uživatel provádí jejich ‚cíl‘ na daném dni. Navrhoval bych, že si vytvořit užitečnou odpověď na tlačítko na konci před předáním k nám, což je v podstatě JSON představa, že jste měli původně. Vím, že to je trochu těžkopádnější, ale odpověď užitečná předán zpět je nezávislé na textu, který byl poskytnut s messenger nití. Navrhoval bych, že byste také pokusí dezinfikovat struny pokud se obáváte, že uživatel již dříve byste způsobit problém s regex. Měli byste být schopni implementovat tuto funkci v případě, že údaje za období předcházející uživatel dezinfikují, aby se zabránilo jakékoli problémy s regex / json rozebrat. Protože se jedná o implementace otázkou se budu muset zavřít tuto zprávu jako neplatné. Pokud jste stále hledají další postřehy a konkrétní tipy pro provádění tohoto toku prosím, poštou na náš přetečení zásobníku, kde máme Facebook inženýrů a širokou škálu členů komunity, kteří rovněž přispívají. http://facebook.stackoverflow.com/ Dávejte pozor a přání všeho nejlepšího se svým messenger bot. Označit

Tato věta byla zvláště nejasná:

Vím, že to je trochu těžkopádnější, ale odpověď užitečná předán zpět je nezávislé na textu, který byl poskytnut s messenger nití.

TLDR; Může někdo informovat mě o tom, jak zabránit tlačítka v přihlášení užitečnou řetězec, takže mohu použít ji předat JSON k mé aplikaci, aniž by uživatel vidí, že?

Položena 02/08/2016 v 21:59
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Z mého chápání říkáte, že při stisknutí tlačítka pro užitečnou zátěž namísto textu Tlačítko je zobrazeno nahoře.

Jste definování tlačítka, jako je tento?

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

Já bych doporučil odstranění nějaké speciální znaky, které by nepořádku s analýze svého užitečného zatížení. Dokud speciální znaky nejsou rozhodující pro uživatelské zkušenosti, je to pravděpodobně v pořádku řešení.

Pokud to nepomůže vyřešit váš problém:

Můžete přidat screenshot ukazuje na tlačítko, které tlačí a log zprávu mluvíš? Z mého chápání říkáte, že při stisknutí tlačítka pro užitečnou zátěž namísto textu Tlačítko je zobrazeno nahoře. To není případ pro mě, mou tlačítka textu zobrazí při stisknutí tlačítka.

Odpovězeno 03/08/2016 v 16:24
zdroj uživatelem

hlasů
2

Ujistěte se, že zakomentovat sendTextMessage()ve své receivedPostback()výzvě:

function receivedPostback(event){
    sendTextMessage(senderID, event.postback.payload);
}
Odpovězeno 24/10/2016 v 16:01
zdroj uživatelem

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