[英]@ character is not displayed in Watson Conversation Service response string
在使用 IBM Watson Conversation Service (WCS) 時,我想在響應中打印一個電子郵件地址。 問題是 WCS 忽略了 @ 符號之后的所有字符和 @ 字符本身。
我嘗試使用'
和\\
來逃避它,但它沒有多大幫助。
如何在響應字符串中打印電子郵件地址?
如果電子郵件地址作為上下文變量傳遞到 Watson Conversation 服務,那么它可以作為響應字符串的一部分返回(打印)。 假設變量名為“email”,其值為“henrik@example.com”,則響應如下:
Hello, your mail address is <? $email ?>
它會返回:
Hello, your mail address is henrik@example.com
但是,如果要打印出諸如@
特殊字符,則需要小心。 原因是它指的是實體。 它是一種簡寫。 在這種情況下,您需要使用\\
轉義該符號,例如\\@
。 這是一個硬編碼的響應:
Please contact support at support\@example.com
我不確定你的問題,但是,如果你想在對話中返回郵件地址,你可以在context
變量 [高級響應] 中添加mail
地址值:
{
"context": {
"mail": "mail@domain.com"
},
"output": {
"text": {
"values": [
"Your mail address is $mail"
],
"selection_policy": "sequential"
}
}
}
並使用$mail
[訪問上下文變量的方法] 訪問此值並在您的對話中返回如下內容:
if bot recognizes yourCondition response "Your mail address is $mail
但是,如果您想為此使用一些自定義代碼,您可以添加來自您的 Conversation 消息調用的返回,例如:
//add inside your call, like:
conversation.message(payload, function (err, data) {
data.context.mail= "mail@domain.com";
if (err) {
return res.status(err.code || 500).json(err);
}
updateMessage(payload, data, req, res);
});
});
在您的 Watson Conversation Service 中,您可以在每個帶有$mail
響應消息中使用此變量。
這是同樣的問題。 我曾經面對過。 解決方案非常簡單。
如果您使用的是 watson 助手 UI,請嘗試響應,例如,
youremail\@gmail.com
如果您使用 watson 助手 API 來操作對話框,它將起作用。 你必須給
"youremail\\@gmail.com"
我不知道這是什么原因。 但是,該解決方案似乎有效。
如果您需要編寫靜態電子郵件地址,則可能需要破解它。 如果您在響應中添加(虛擬)變量,WCS 似乎假設您知道自己在做什么。
例如: Email addr@gmail.com!
結果: Email addr!
(文字)
但是: Email addr@gmail.com! <? $x >
Email addr@gmail.com! <? $x >
結果: Email addr@gmail.com!
(鏈接)
前者只是字面的“地址”
后者是鏈接:( addr@gmail.com ) <a href="mailto:addr@gmail.com" class="WAC__Link WAC__Link-email" target="_blank" rel="noopener noreferrer"> addr@gmail. com</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.