你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

从语言生成库中注入的函数

适用于:SDK v4

下面的文章详细介绍了如何从语言生成 (LG) 库中注入函数。

ActivityAttachment

返回基于对象和类型构造的 activityAttachment

ActivityAttachment(<collection-of-objects>)
参数 必选 类型​​ 描述
<content> 对象 (object) 包含附件信息的对象
<type> 字符串 表示附件类型的字符串
返回值 类型 说明
<activityAttachment> 对象 (object) 由输入构成的 activityAttachment

示例

此示例将对象集合转换为 activityAttachment

假设有以下模板:

# externalHeroCardActivity(type, title, value)
[Activity
    attachments = ${ActivityAttachment(json(fromFile('.\\herocard.json')), 'herocard')}
]

和以下 herocard.json

{
  "title": "titleContent",
  "text": "textContent",
  "Buttons": [
    {
      "type": "imBack",
      "Title": "titleContent",
      "Value": "textContent",
      "Text": "textContent"
    }
  ],
  "tap": {
    "type": "${type}",
    "title": "${title}",
    "text": "${title}",
    "value": "${value}"
  }
}

通过调用 externalHeroCardActivity() 作为一个函数:

externalHeroCardActivity('signin', 'Signin Button', 'http://login.microsoft.com')

它将返回 herocard

{
    "lgType" = "attachment",
    "contenttype" = "herocard",
    "content" = {
        "title": "titleContent",
        "text": "textContent",
        "Buttons": [
            {
            "type": "imBack",
            "Title": "titleContent",
            "Value": "textContent",
            "Text": "textContent"
            }
        ],
        "tap": {
            "type": "signin",
            "title": "Signin Button",
            "text": "Signin Button",
            "value": "http://login.microsoft.com"
        }
    }
}

expandText

评估对象中的纯文本并返回展开的文本数据。

expandText(<object>)
参数 必选 类型​​ 说明
<object> 对象 (object) 要展开的对象(包含文本)。
返回值 类型 说明
<evaluated-result> object 扩展的文本数据。

示例

此示例对 JSON 对象中的纯文本求值,并返回展开的文本结果。

假设你拥有以下对象:

{
  "@answer": "hello ${user.name}",
  "user": {
    "name": "vivian"
  }
}

调用 expandText(@answer) 将生成对象 hello vivian。

template

返回给定模板名称和范围的计算结果。

template(<templateName>, '<param1>', '<param2>', ...)
参数 必选 类型​​ 说明
<templateName> 字符串 表示模板名称的字符串
<param1>,<param2>, ... 对象 传递给模板的参数
返回值 类型 说明
<evaluated-result> 对象 (object) 从模板作为函数计算的结果

示例

此示例将计算将模板作为函数调用的结果。

假设有以下模板:

# welcome(userName)
- Hi ${userName}
- Hello ${userName}
- Hey ${userName}

调用 template("welcome", "DL") 将导致下列情况之一:

  • Hi DL
  • Hello DL
  • Hey DL

fromFile

返回给定文件中表达式的计算结果。

fromFile(<filePath>)
参数 必选 类型​​ 说明
<filePath> 字符串 文件的相对路径或绝对路径包含表达式
返回值 类型 说明
<result> 字符串 计算结果的字符串表示形式

示例

此示例将计算给定文件的结果。

假设有一个名为 /home/user/test.txt 的文件。 文件中包含以下内容:

`you have ${add(1,2)} alarms`

fromFile('/home/user/test.txt')

fromFile() 函数将计算表达式,其结果将替换原始表达式。

调用 fromFile('/home/user/test.txt') 会出现字符串“你有 3 个警报”。

isTemplate

返回计算器中是否包含给定模板名称。

isTemplate(<templateName>)
参数 必选 类型​​ 说明
<templateName> 字符串 要检查的模板名称
返回值 类型 说明
<result> Boolean 计算器中是否包含给定模板名称

示例

此示例使用 isTemplate() 函数来检查计算器中是否有给定模板名称。 例如,下面是三个模板:

# welcome
- hi

# show-alarms
- 7:am and 8:pm

# add-to-do
- you add a task at 7:pm

调用 isTemplate("welcome") 的求值结果为 true。 调用 isTemplate("delete-to-do") 的求值结果为 false

其他信息