2017-04-24 2 views
0

Je suis nouveau à api.ai et je faisais l'implémentation webhook. J'ai remarqué que seul le "speech" ou "displayText" de la réponse webhook est montré à l'utilisateur. Y at-il une technique pour utiliser d'autres paramètres de la réponse?Ne pouvons-nous pas utiliser autre chose que displayText de réponse webhook

Je serais heureux, si quelqu'un me dire comment pourrais-je formater le texte de réponse comme ce qui en fait gras, changer la police, etc.

Merci!

Répondre

2

Notez que si le client auquel vous envoyez la réponse (tel que Facebook Messenger) ne prend pas en charge les formats spéciaux tels que le gras, il s'agit d'un exercice futile. Cela dit, il existe de nombreux types de réponses plus riches que le texte brut, et si vous voulez le faire par programmation plutôt que de créer des réponses riches dans API.ai, je vous suggère d'injecter votre solution côté serveur personnalisée. entre le client et API.ai plutôt que de l'avoir à la fin du processus.

En d'autres termes: interface client < -> solution personnalisée < -> API.ai plutôt que Client < -> API.ai < -> réalisation personnalisée

Cela vous donne plus de personnalisation et d'options d'exécution , notamment la création d'une logique de réponse/d'invite entièrement personnalisée sans même toucher le point de terminaison API.ai ou d'autres modifications de l'API après leur traitement, par exemple l'ajout d'un résultat de requête de base de données au texte d'un API.ai.

En supposant que vous avez une configuration comme celui-ci, dans Node.js une solution pour envoyer des charges utiles plus avancées que le texte à Facebook Messenger ressemblerait à ceci:

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

 
\t callSendAPI(messageData); 
 
} 
 

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

 
\t callSendAPI(messageData); 
 
} 
 

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

 
\t callSendAPI(messageData); 
 
} 
 

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

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

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

Espoir qui aide

+0

J'apprécie votre aide. Je vous remercie :) –