beebotte / bbt_php
用于与 Beebotte 交互的 PhP 库
Requires
- php: >=5.2
- ext-curl: *
This package is not auto-updated.
Last update: 2024-09-29 23:25:47 UTC
README
错误/功能请求
认为找到了错误?想在 Beebotte 中看到新功能?请在本项目的 github 上提交问题。请尽可能提供有关问题类型和如何复现问题的信息。
https://github.com/beebotte/bbt_php/issues
安装
Beebotte PHP 库作为名为 bbt_php
的 composer
包提供(见 https://packagist.org.cn/packages/beebotte/bbt_php)。
composer require beebotte/bbt_php
或者在您的项目中的 composer.json
中添加以下内容
"require": {
"beebotte/bbt_php": "*"
}
然后运行 composer update
。
如果您没有 composer,您仍然可以通过从 github 克隆项目或下载库源文件来获取 Beebotte PHP 库
git clone https://github.com/beebotte/bbt_php.git
。
使用方法
要使用此库,您必须是注册用户。如果不是,请在 http://beebotte.com 创建您的账户并记录您的访问凭证。
提醒一下,Beebotte 资源描述使用两级层次结构
- 通道:物理或虚拟连接对象(一个应用程序、Arduino、咖啡机等)提供某些资源
- 资源:Beebotte 最基本的部分,这是实际的数据源(例如智能家居传感器的温度)
Beebotte 构造函数
使用您的账户 API 密钥初始化 Beebotte 连接器
$api_key = 'YOUR_API_KEY';
$secret_key = 'YOUR_SECRET_KEY';
$bbt = new Beebotte($api_key, $secret_key);
读取数据
您可以使用以下方式从您的通道资源之一读取数据
$records = $bbt->read("channel1", "resource1", 5 /* read last 5 records */);
您可以通过指定通道所有者从公共通道读取数据
$records = $bbt->publicRead("owner", "channel1", "resource1", 5 /* read last 5 records */);
写入数据
您可以使用以下方式将数据写入您通道之一的资源
$bbt->write("channel1", "resource1", "Hello Horld");
如果您有多个记录要写入(到同一通道的多个资源),您可以使用 批量写入
方法
$bbt->writeBulk("channel1", array(array("resource" => "resource1", "data" => "Hello"), array("resource" => "resource2", "data" => "World")));
发布数据
您可以使用以下方式将数据发布到通道资源
$bbt->publish("any_channel", "any_resource", "Hello World");
发布的数据是瞬时的。它不会被保存到任何数据库中;相反,它将实时传递给活跃的订阅者。发布操作不需要通道和资源实际创建。它们将被视为虚拟的:只要您向它们发布数据,通道和资源就存在。默认情况下,发布的数据是公开的,要发布私密消息,您需要在通道名称前添加 private-
前缀,如下所示
$bbt->publish("private-any_channel", "any_resource", "Hello World");
如果您有多个记录要发布(到同一通道的多个资源),您可以使用 批量发布
方法
$bbt->publishBulk("channel1", array(array("resource" => "resource1", "data" => "Hello"), array("resource" => "resource2", "data" => "World")));
资源对象
库提供了一个可以按以下方式使用的 Resource 类
//Create the resource object
$resource = new Resource($bbt, "channel1", "resource1");
//Read data from public resource
$records = $resource->read("owner", 2 /* last 2 records */);
//Read data
$records = $resource->read(null, 2 /* last 2 records */);
//Read the last written record
$record = $resource->recentValue();
//Write data
$resource->write("Hello World");
//Publish data
$resource->publish("Hola amigo");
签名 subscribe
请求
如 https://beebotte.com/docs/clientauth 中所述,您需要实现一个 身份验证端点
来授予您的 Web 应用程序用户访问 Beebotte 账户上的特权通道资源的权限。
库提供了一些实用函数来简化此类端点的实现
// authenticate client subscribe request given all parameters
$sig = $bbt->auth_client($sid, $channel, $resource, $ttl, $read, $write);
您也可以自己构建要签名的字符串并将其输入到库中以获取签名
$r = $read ? "true" : "false";
$w = $write? "true" : "false";
$stringToSign = $sid . ":" . $channel . "." . $resource . ":ttl=" . $ttl . ":read=" . $r . ":write=" . $w;
$sig = $bbt->sign($stringToSign);
许可
版权所有 2013 - 2019 Beebotte。