簡體   English   中英

@ 字符未顯示在 Watson Conversation Service 響應字符串中

[英]@ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM