beebotte/bbt_php

用于与 Beebotte 交互的 PhP 库

dev-master 2019-07-13 22:41 UTC

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_phpcomposer 包提供(见 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。

MIT 许可证