я получаю объект JSON с некоторым количеством быстрых элементов ответа от wit.ai, как это:как построить массив JSON динамически в JavaScript
"msg": "So glad to have you back. What do you want me to do?
"action_id": "6fd7f2bd-db67-46d2-8742-ec160d9261c1",
"confidence": 0.08098269709064443,
"quickreplies": [
"News?",
"Subscribe?",
"Contribute?",
"Organize?"
],
"type": "msg"
Я тогда нужно преобразовать их в несколько иной формат, поскольку они передаются FaceBook Messenger, как описано в приведенном ниже коде. Уит раскрывает только «msg» и «quickreplies». Можете ли вы предложить хороший способ сделать это? Это происходит после «console.log (element)», насколько я понимаю.
if (quickreplies){
// got simple array of quickreplies
// need to format quickreplies for FB:
// "quick_replies":[
// {
// "content_type":"text",
// "title":"Red",
// "payload":"DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_RED"
// },
// {
// "content_type":"text",
// "title":"Green",
// "payload":"DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_GREEN"
// }
console.log('we got quickreplies, here they are:');
var quick_replies = []; // ??
quickreplies.forEach(function(element) {
console.log(element)
});
}
else (console.log('no quickreplies'));
В приведенном выше примере, конечный результат должен быть таким:
"recipient":{
"id":"USER_ID"
},
"message":{
"text":"Pick a color:",
"quick_replies":[
{
"content_type":"text",
"title":"Red",
"payload":"DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_RED"
},
{
"content_type":"text",
"title":"Green",
"payload":"DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_GREEN"
}
]
}
Что формат быстрого ответа от 'wit.ai?' Вы пробовали конвертировать один формат в FB? 'var quick_replies = quickreplies.map (conversionFunction)' может быть лучше, чем '.forEach' – traktor53
Если я прочитал его правильно, это преобразование является частью подготовки объекта сообщения, чье свойство text будет« welcom back .... »и будет содержат массив 'quick_replies'. Каждый объект 'quick_reply' будет иметь заголовок, такой как« подписаться »и полезная нагрузка _, который будет возвращен в качестве метаданных при получении ответа в разговоре. Следующий шаг - решить, какие метаданные должны быть для каждого действия, основываясь на том, как вы собираетесь сообщить боту, что такое ответ. – traktor53
Да. Но на этом этапе я был бы очень рад просто увидеть, как быстрые ответы появляются как кнопки на бот-сервере FB. Для этого мне нужно только правильно отформатировать его и отправить в FB. – Jerome