Facebook messenger проблема с получением Postback

180
18 июля 2017, 18:23

Пишу чат бот для Facebook и столкнулся с проблемой при получении payload с нажатой кнопки юзером.

StringBuffer jb = new StringBuffer();
    String line = null;
    try {
        BufferedReader reader = httpRequest.getReader();
        while ((line = reader.readLine()) != null)
            jb.append(line);
    } catch (Exception e) {
        GoogleMail.send("reader.readLine()   " + e.getMessage());
        e.printStackTrace();
    }
    /**
     * convert the string request body in java object
     */
    FbMsgRequest fbMsgRequest = new Gson().fromJson(jb.toString(), FbMsgRequest.class);
    if (fbMsgRequest == null) {
        System.out.println("fbMsgRequest was null");
        response.setStatus(HttpServletResponse.SC_OK);
        return;
    }
    List<Messaging> messagings = fbMsgRequest.getEntry().get(0).getMessaging();
    Gson gson = new Gson();
    for (Messaging event : messagings) {
        if (event.getMessage() != null && event.getMessage().getText() != null) {
            String s = RestHelper.post(event.getSender().getId(), event.getMessage().getText());
            sendTextMessage(MsgBilder.sendMSG(gson.fromJson(s, MsgModel.class)));
        } else if (event.getPostback() != null&&event.getPostback().getPayload()!=null) {
            String s = RestHelper.post(event.getSender().getId(), event.getPostback().getPayload(),
                    event.getMessage().getText());
            sendTextMessage(MsgBilder.sendMSG(gson.fromJson(s, MsgModel.class)));
        }

    }
    response.setStatus(HttpServletResponse.SC_OK);

Внутрь if (event.getPostback() != null&&event.getPostback().getPayload()!=null)

программа никогда не заходит хотя на кожной кнопке которую я отправляю юзеру есть Payload

json:

 {
"recipient": {
    "id": "152261460109xxxx"
},
"timestamp": 0,
"message": {
    "attachment": {
        "type": "template",
        "payload": {
            "template_type": "button",
            "text": " Hello. I am chatbot ) I can help you to get lot of cool solutions around whisky bar. So, what would you like?",
            "buttons": [{
                "type": "postback",
                "title": "Single malt Scotch whiskey",
                "payload": "3"
            }, {
                "type": "postback",
                "title": "Something cheap, but not opposite",
                "payload": "4"
            }, {
                "type": "postback",
                "title": "You can ask Google",
                "payload": "5"
            }]
        }
    }
}}

как решить?

READ ALSO
Построить пирамиду из символов

Построить пирамиду из символов

Написал метод, который строить пирамиду из символов "^"Саму пирамиду рисует правильно, только вот есть лишний пробел и переход на новую строку,...

726
проблемы с конфигурацией логгера, java

проблемы с конфигурацией логгера, java

У меня есть файл конфига для логгера log4jxml, но когда я пытаюсь его подключить для инициализации логгера, почему то он его ищет не в папке проекта...

229
Как проверить переменную на тип в Java

Как проверить переменную на тип в Java

Как проверить переменную, вводимую через Scanner, на принадлежность к типу double ?

270
Теги на кириллице из xml

Теги на кириллице из xml

Вот сам xml файл:

365