Пишу чат бот для 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"
}]
}
}
}}
как решить?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Написал метод, который строить пирамиду из символов "^"Саму пирамиду рисует правильно, только вот есть лишний пробел и переход на новую строку,...
У меня есть файл конфига для логгера log4jxml, но когда я пытаюсь его подключить для инициализации логгера, почему то он его ищет не в папке проекта...
Как проверить переменную, вводимую через Scanner, на принадлежность к типу double ?