deboorn/xively-api

Xively Api 的 PHP API 客户端

v1.1.2 2015-10-18 16:29 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:31:30 UTC


README

Xively-Api

  • PHP 5 的 Xively Api 可链式 API 实现
  • 许可: 创意共享署名-非商业使用 3.0 未本地化 (CC BY-NC 3.0)
  • 这些文件不是由 Xively (LogMeIn) 正式支持的。
  • 有关此软件的问题应发送至 daniel.boorn@gmail.com

如何安装

安装 deboorn/xively-api

$ composer require deboorn/xively-api

使用示例

$xi = new \Xively\Api('your api key');

// view api resource triggers
var_dump($xi->paths);

// example - json get feeds
$r = $xi->feeds()->list()->get();
var_dump($r);

// example - xml get feeds
$xml = $xi->xml()->feeds()->list()->get();
var_dump($xml);

// example - csv get feeds
$csv = $xi->csv()->feeds()->list()->get();
var_dump($csv);

// example - with custom exception
try {
    $r = $xi->feeds()->list()->get();
} catch (\Xively\Exception $e) {
    die($e->getMessage());
}

// example - get feeds by criteria
$r = $xi->feeds()->read(array(
    'per_page' => 10,
    'page'     => 5,
    'tag'      => 'temperature',
))->get();
var_dump($r);

// example - same as above with iteration
$r = $xi->feeds()->read(array('per_page' => 10, 'page' => 5, 'tag' => 'temperature',))->get();
echo "<pre>Total Results: {$r->totalResults}\n\n";
foreach ($r->results as $row) {
    print_r($row);
}

// example - feed used in examples below

$r = $xi->feeds()->read(array('per_page' => 1))->get();
$feed = current($r->results);

// example - grab feed data by range
$r = $xi->feeds($feed->id)->range(array(
    'start'     => date('c', strtotime('-10 days')),
    'end'       => date('c', strtotime('-1 hour')),
    'time_unit' => 'hours',
))->get();
var_dump($r);

// example - grab feed's 1st data stream
$datastream = current($feed->datastreams);

// example - pull data from stream by range
$r = $xi->feeds($feed->id)->datastreams($datastream->id)->range(array(
    'start'     => date('c', strtotime('-10 days')),
    'end'       => date('c', strtotime('-1 hour')),
    'time_unit' => 'hours',
))->get();
var_dump($r);

// example - push data to stream
$r = $xi->feeds()->read(array(
    'user' => 'deboorn',
))->get();

//feeds(id)->datastreams(id)->update(body)
$feed = $r->results[1];
$dataStream = $feed->datastreams[0];
$r = $xi->feeds($feed->id)->datastreams($dataStream->id)->update(array(
    'version'     => '1.0.0',
    'datastreams' => array(
        array(
            'id'         => $dataStream->id,
            'datapoints' => array(
                array('at' => date('c'), 'value' => rand(1, 10)),
            ),
        ),
    ),
))->get();


// ... create your own chain ... see paths in json file for complete triggers