日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

邏輯節(jié)點-函數應用

函數節(jié)點分為內置函數和自定義函數,也可以通過服務注冊中心編寫函數,編寫后使用服務調用節(jié)點進行使用。

內置函數

通用內置函數

支持HTTP/HTTPS協議,您可以完成HTTP標準協議里面的配置。例如:POST/GET方法,query/header/body的請求體。

image

如果想在配置內置函數時,對變量進行引用,針對不同的變量類型有不同的引用方式:

  • 支持四類變量

    • 槽位變量 intentName.slotName (只讀)

    • 全局變量 botVar.varName(讀寫)

    • 環(huán)境變量 VENDOR_PARAM(只讀)

    • 函數返回 functionOutput(只讀)

自定義函數

在第一次調用函數控制臺開通指引的時候,如果沒有給賬號授權,會提示用戶進行授權,如下圖,授權過程見“函數控制臺開通指引”。

前往函數控制臺開通指引

image

授權后用戶可以綁定在阿里云編寫好的JS 函數,通過選擇服務函數的方式與畫布中的函數計算綁定,如下圖:

image

代碼模板(node.js語法):

module.exports.handler = function(event, context, callback) {
    /** event structure definition
    {    
      // read-only variables
      "environment": "Object",
      "lastOutputForFunction": "String",
      "slotSummary": "Object",

      // read/write variables
      "botVar": "Object",
      "outputForResponse": "Object",
      "outputForFunction": "String",
      "routeVariable": "String"
    }
    **/var eventResult = "";
    try {
        var eventObj = JSON.parse(event);

        // add your code here/**
       /**
        * code block
        **/

        eventResult = JSON.stringify(eventObj);
        callback(null, eventResult);
    } catch (e) {
        callback(null, e);
    }
};

函數參數說明

參數名

參數類型

參數說明

可寫

environment

json

見下面 environment說明

只讀

lastOutputForFunction

String

上一個函數的輸出結果

只讀

slotSummary

json

各槽位的填值情況

只讀

botVar

String

全局變量,在設計對話流的時候進行定義,在函數執(zhí)行過程中可以直接引用或賦值。

outputForResponse

json

函數返回結果

outputForFunction

String

當前函數的輸出值,可以被其它函數通過lastOutputForFunction引用。

routeVariable

String

函數節(jié)點分支邏輯路由變量,在分支邏輯判斷時需要此參數。

environment參數說明

參數

類型

說明

SENDER_ID

STRING

發(fā)送者 ID

SENDER_NICK

STRING

發(fā)送者昵稱

IS_ADMIN

STRING

是否為企業(yè)管理員

SENDER_STAFF_ID

STRING

當發(fā)送者是企業(yè)機器人所對應的企業(yè)的員工,返回發(fā)送者在企業(yè)的工號。

MEMBER_TYPE

STRING

會員類型

TOKEN

STRING

會話 token

樣例代碼:

module.exports.handler = function(event, context, callback) {
    /** event structure definition
    {
      // read-only variables
      "environment": "Object",
      "lastOutputForFunction": "String",
      "slotSummary": "Object",

      // read/write variables
      "botVar": "botVar.varName",
      "outputForResponse": "Object",
      "outputForFunction": "String",
      "routeVariable": "String"
    }
    **/
    var arr = "";
    var eventResult = "";
    try {
        var eventObj = JSON.parse(event);
        // add your code here

        if (eventObj.environment.hasOwnProperty("orderId")) {
            eventObj.routeVariable = '1';
        } else {
            eventObj.routeVariable = '0';
        }
        eventResult = JSON.stringify(eventObj);
        callback(null, eventResult);
    } catch (e) {
        arr += e;
        eventObj.outputForResponse.htmlText = [arr];
        eventResult = JSON.stringify(eventObj);
        callback(null, eventResult);
    }
};

event數據結構說明:

{
 "environment": {
 "user_id": "1323011"
 },
 "lastOutputForFunction": "{\"query\":{\"count\":1,\"created\":\"2018-03-28T10:20:59Z\",\"lang\":\"en-US\",\"results\":{}}}}",
 "slotSummary": {
 "QueryWeatherIntent.date": "2018-03-29",
 "QueryWeatherIntent.date_origin": "明天",
 "QueryWeatherIntent.city": "上海",
 "QueryWeatherIntent.city_origin": "上海",
 },
 "botVar": {
 "phoneNumber": "13*****000"
 },
 "outputForResponse": {
 "htmlText": [
 "It's a fine today.",
 "It's a sunny day."
 ],
 "useRandom": true
 },
 "outputForFunction": "invoke API successfully",
 "routeVariable":"OK"
 }