Methods summary
public
null
|
#
__construct( array $postData = [], string $privateKey = '' )
构造函数
Parameters
- $postData
- us对bot的数据。默认可以为空,sdk自行获取
- $privateKey
- 私钥内容
Returns
null
Example
parent::__construct($requestBody, $privateKey);
parent::__construct($privateKey);
|
protected
null
|
#
addLaunchHandler( function $func )
Parameters
- $func
- 处理函数。返回值作为response给DuerOS
Returns
null
Example
$this->addLaunchHandler(function(){
return [
'outputSpeech' => '欢迎使用'
];
});
Desc
添加对LaunchRequest 的处理函数
|
protected
null
|
#
addSessionEndedHandler( function $func )
Parameters
- $func
- 处理函数。DuerOS不会使用该返回值
Returns
null
Example
$this->addSessionEndedHandler(function(){
});
Desc
添加对SessionEndedRequest 的处理函数
|
protected
null
|
#
addIntentHandler( string $intentName, function $func )
Parameters
- $intentName
- 意图名称
- $func
- 处理函数。返回值作为response给DuerOS
Returns
null
Example
$this->addIntentHandler('intentName', function(){
return [
'outputSpeech' => '你的意图,我已经处理好了'
];
});
Desc
添加对特定意图的处理函数
|
protected
null
|
#
addHandler( string $mix, function $func = null )
Parameters
- $mix
- 条件,比如意图以'#'开头'#intentName';或者是'LaunchRequest'、'SessionEndedRequest'
- $func
- 处理函数,满足$mix条件后执行该函数
Returns
null
Desc
条件处理。顺序相关,优先匹配先添加的条件:
1、如果满足,则执行,有返回值则停止
2、满足条件,执行回调返回null,继续寻找下一个满足的条件
|
protected
null
|
|
protected
null
|
#
addEventListener( string $event, function $func )
Parameters
- $event
- 绑定的事件名称,比如AudioPlayer.PlaybackStarted
- $func
- 处理函数,传入参数为事件的request,返回值做完response给DuerOS
Returns
null
Link
Example
$this->addEventListener('AudioPlayer.PlaybackStarted', function($event){
return [
'outputSpeech' => '事件处理好啦',
];
});
Desc
绑定一个事件的处理回调。
|
public
string
|
|
public
string
|
#
getSessionAttribute( string $field = null, string $default = null )
Parameters
- $field
- 属性的key
- $default
- 如果该字段为空,使用$default返回
Returns
string
Desc
快捷方法。获取session某个字段,与Session的getData功能相同
|
public
|
#
setSessionAttribute( string $field, string $value, string $default = null )
Parameters
- $field
- 属性的key
- $value
- 对应的值
- $default
- 如果$value为空,使用$default
Desc
快捷方法。设置session某个字段,与Session的setData功能相同。
$field = 'a.b.c' 表示设置session['a']['b']['c'] 的值
|
public
null
|
|
public
string
|
#
getSlot( string $field, integer $index = 0 )
Parameters
- $field
- 槽位名
- $index
- 第几个intent,默认第一个
Returns
string
Desc
快捷方法。获取一个槽位的值,与Nlu中的getSlot相同
|
public
string
|
#
setSlot( string $field, string $value, integer $index = 0 )
Parameters
- $field
- 槽位名
- $value
- 槽位的值
- $index
- 第几个intent,默认第一个
Returns
string
Desc
快捷方法。设置一个槽位的值,与Nlu中的setSlot相同
|
public
null
|
#
waitAnswer( )
Returns
null
Desc
告诉DuerOS,在多轮对话中,等待用户的回答。
注意:如果有设置Nlu的ask,SDK自动告诉DuerOS,无须调用
|
public
null
|
|
public
array|string
|
#
run( boolean $build = true )
Parameters
- $build
- 如果为false:不进行response封装,直接返回handler的result
Returns
array|string 封装后的结果为json string
Desc
事件路由添加后,需要执行此函数,对添加的条件、事件进行判断。
将第一个return 非null的结果作为此次的response
|
protected
array
|
|