言語生成ライブラリから挿入された関数

この記事の対象: 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 と評価されます。

追加情報