-
DuerOS开放平台
-
技能开放平台
-
自定义技能
- 自定义技能简介
- 自定义技能创建
-
有屏技能
-
技能交互模型
-
自定义技能协议
- 处理DuerOS发送的请求
-
技能部署
-
技能开发样例
- 账户关联
-
技能测试
-
技能发布
-
技能付费
-
个性化服务
-
内容播报技能
-
小技能
-
平台能力扩展
-
SDK
-
预览版功能
- 全双工(Preview)
-
APP技能(Preview)
-
-
智能家居开放平台
- 品牌使用规范
-
开发者服务条款
介绍SDK运行环境、安装过程以及如何创建技能。
类别 | 内容 |
---|---|
操作系统 | Linux |
PHP | 5.4.0及以上版本,需要开启open ssl扩展 |
SDK采用PSR-4规范自动加载,执行如下命令进行安装。
composer require dueros/bot-sdk
-
命令执行过程中可能会出现如下错误提示。
[RuntimeException] Failed to clone https://github.com/dueros/bot-sdk.git via https, ssh protocols, aborting. - https://github.com/dueros/bot-sdk.git error: while accessing https://github.com/dueros/bot-sdk.git/info/refs fatal: HTTP request failed - git@github.com:dueros/bot-sdk.git no kex alg fatal: The remote end hung up unexpectedly
问题原因是无法通过网站https://github.com/dueros/bot-sdk获取镜像文件。可以修改~/.composer/config.json文件,将镜像地址修改为https://packagist.laravel-china.org,请按照下面的代码进行修改。
{ "config": {}, "repositories": { "packagist": { "type": "composer", "url": "https://packagist.laravel-china.org" } } }
下面以创建闹钟技能为例,讲述技能的创建过程。
- 新建一个php文件,如Bot.php,打开文件。
- 包含autoload.php文件,代码如下。
require 'vendor/autoload.php';
- 继承“Baidu\Duer\Botsdk\Bot”类,代码如下。
class Bot extends Baidu\Duer\Botsdk\Bot{ public function __construct($postData = []) { parent::__construct($postData); /* DuerOS和技能之间通讯需要进行签名验证,PHP需要开启open ssl扩展*/ $this->certificate->enableVerifyRequestSign(); } }
- 通过addIntentHandler函数创建处理闹钟的意图函数。在构造函数中添加如下代码。
use \Baidu\Duer\Botsdk\Card\TextCard; $this->addIntentHandler('remind', function(){ $remindTime = $this->getSlot('remind_time'); if($remindTime) { $card = new TextCard('创建中'); return [ 'card' => $card, ]; } });
支持传入成员函数名。
$this->addIntentHandler('remind', 'create'); public function create(){ $remindTime = $this->getSlot('remind_time'); if($remindTime) { $card = new TextCard('创建中'); return [ 'card' => $card, ]; } }
闹钟技能创建成功,其他技能也可以参考上面四步进行创建。