Разве мы не можем использовать что-либо, кроме displayText из ответа веб-перехватчика?

Я новичок в api.ai и занимался реализацией веб-перехватчика. Я заметил, что пользователю отображается только «речь» или «displayText» из ответа веб-перехватчика. Есть ли способ использовать какие-либо другие параметры из ответа?

Я был бы рад, если бы кто-нибудь сказал мне, как я могу отформатировать текст ответа, например, выделить его жирным шрифтом, изменить шрифт и т. Д.

Спасибо!


person Devika S    schedule 24.04.2017    source источник


Ответы (1)


Обратите внимание: если клиент, которому вы отправляете ответ (например, Facebook Messenger), не поддерживает специальные форматы, такие как полужирный, это бесполезное упражнение.

Тем не менее, есть много более богатых типов ответов, которые вы можете отправлять, чем просто текст, и если вы хотите делать это программно, а не создавать расширенные ответы в API.ai, я бы предложил внедрить ваше собственное серверное решение между клиентом и API.ai вместо того, чтобы иметь его в конце процесса.

Другими словами: Клиентский интерфейс ‹-> Пользовательское решение ‹-> API.ai, а не Клиент ‹-> API.ai ‹-> Пользовательское выполнение.

Это дает вам больше возможностей настройки и выполнения, в том числе создание полностью настраиваемой логики ответов / подсказок, даже не затрагивая конечную точку API.ai, или дальнейшее редактирование возвратов API после их обработки, например, добавление результата запроса к базе данных в текст API. аи исполнение.

Предполагая, что у вас есть такая настройка, в node.js решение для отправки более сложных полезных нагрузок, чем текст, в Facebook Messenger будет выглядеть так:

//Send gif or image reply
function sendGifMessage(recipientId) {
	var messageData = {
		recipient: {
			id: recipientId
		},
		message: {
			attachment: {
				type: "image",
				payload: {
					url: config.SERVER_URL + "FILE LOCATION"
				}
			}
		}
	};

	callSendAPI(messageData);
}

// Send custom payload buttons
function sendButtonMessage(recipientId, text, buttons) {
	var messageData = {
		recipient: {
			id: recipientId
		},
		message: {
			attachment: {
				type: "template",
				payload: {
					template_type: "button",
					text: text,
					buttons: buttons
				}
			}
		}
	};

	callSendAPI(messageData);
}

// Send quickReply buttons
function sendQuickReply(recipientId, text, replies, metadata) {
	var messageData = {
		recipient: {
			id: recipientId
		},
		message: {
			text: text,
			metadata: isDefined(metadata)?metadata:'',
			quick_replies: replies
		}
	};

	callSendAPI(messageData);
}

function callSendAPI(messageData) {
	request({
		uri: 'https://graph.facebook.com/v2.6/me/messages',
		qs: {
			access_token: config.FB_PAGE_TOKEN
		},
		method: 'POST',
		json: messageData

	}, function (error, response, body) {
		if (!error && response.statusCode == 200) {
			var recipientId = body.recipient_id;
			var messageId = body.message_id;

			if (messageId) {
				console.log("Successfully sent message with id %s to recipient %s",
					messageId, recipientId);
			} else {
				console.log("Successfully called Send API for recipient %s",
					recipientId);
			}
		} else {
			console.error("Failed calling Send API", response.statusCode, response.statusMessage, body.error);
		}
	});
}

надеюсь, это поможет

person Matt R O'Connor    schedule 24.04.2017
comment
Я ценю вашу помощь. Спасибо :) - person Devika S; 26.04.2017