言語生成ライブラリから挿入された関数
この記事の対象: SDK v4
次の記事では、言語生成 (LG) ライブラリから関数を挿入する方法について詳しく説明します。
ActivityAttachment
オブジェクトと型から構築された activityAttachment
を返します。
ActivityAttachment(<collection-of-objects>)
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
<content> | はい | object | 添付ファイルの情報を含むオブジェクト |
<type> | はい | string | 添付ファイルの種類を表す文字列 |
戻り値 | 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 | 展開するテキストを含むオブジェクト。 |
戻り値 | Type | 説明 |
---|---|---|
<evaluated-result> | object | 展開されたテキスト データ。 |
例
この例では、JSON オブジェクト内のプレーン テキストを評価し、展開されたテキストの結果を返します。
次のオブジェクトがあるとします。
{
"@answer": "hello ${user.name}",
"user": {
"name": "vivian"
}
}
expandText(@answer)
を呼び出すと、hello vivian というオブジェクトが返されます。
テンプレート
指定したテンプレート名とスコープの評価結果を返します。
template(<templateName>, '<param1>', '<param2>', ...)
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
<templateName> | はい | string | テンプレート名を表す文字列 |
<param1>,<param2>, ... | はい | オブジェクト | テンプレートに渡されるパラメーター |
戻り値 | Type | 説明 |
---|---|---|
<evaluated-result> | object | 関数としてのテンプレートの評価結果 |
例
この例では、関数としてテンプレートを呼び出した結果が評価されます。
次のテンプレートがあるとします。
# welcome(userName)
- Hi ${userName}
- Hello ${userName}
- Hey ${userName}
template("welcome", "DL")
を呼び出すと、次のいずれかの結果になります。
- Hi DL
- Hello DL
- Hey DL
fromFile
指定したファイル内の式の評価結果を返します。
fromFile(<filePath>)
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
<filePath> | はい | string | 式を含むファイルの相対パスまたは絶対パス |
戻り値 | Type | 説明設定 |
---|---|---|
<result> | string | 評価結果の文字列形式 |
例
この例では、指定したファイルの結果が評価されます。
/home/user/test.txt
という名前のファイルがあるとします。 ファイル内には、次のものがあります。
`you have ${add(1,2)} alarms`
fromFile('/home/user/test.txt')
fromFile()
関数によって式が評価され、その結果によって元の式が置換されます。
fromFile('/home/user/test.txt')
を呼び出すと、文字列 you have 3 alarms になります。
isTemplate
指定したテンプレート名がエバリュエーターに含まれているかどうかを返します。
isTemplate(<templateName>)
パラメーター | 必須 | タイプ | 説明 |
---|---|---|---|
<templateName> | はい | String | 調べるテンプレート名 |
戻り値 | Type | 説明設定 |
---|---|---|
<result> | Boolean | 指定したテンプレート名がエバリュエーターに含まれているかどうか |
例
この例では、isTemplate()
関数を使用して、指定したテンプレート名がエバリュエーターに存在するかどうかが調べられます。 たとえば、次の 3 つのテンプレートがあります。
# 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
と評価されます。