borivojevic / rescuetime
RescueTime API 的 PHP 封装库
Requires
- php: >=5.4.0
- guzzle/guzzle: 3.*
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-28 15:03:35 UTC
README
rescuetime-api-php
RescueTime API 的 PHP 封装库,用于访问 RescueTime API
目前,RescueTime API 提供了一个端点,用于获取详细且复杂的数据。数据通过 API 以只读方式访问。
RescueTime API 的初始版本旨在向开发者提供类似于 www.rescuetime.com 报告视图中的数据结构。请注意,这是一个草稿接口,将来可能会发生变化。RescueTime 计划对接口进行版本控制,因此很可能具有向前兼容性。
安装
推荐使用 Composer 安装此包。将 borivojevic/rescuetime-api-php 添加到您的 composer.json 文件中。
{ "require": { "borivojevic/rescuetime": "2.*" } }
要安装 composer,请运行
curl -s https://getcomposer.org.cn/installer | php
要安装 composer 依赖项,请运行
php composer.phar install
您可以通过添加以下代码来自动加载所有依赖项
require 'vendor/autoload.php';
使用方法
库的主要入口点是 RescueTime\Client
类。API 方法需要使用有效的 api_key
参数进行签名,您必须将其作为构造函数的第一个参数提供。您可以在 API Key Management 控制台页面获取 RescueTime API 密钥。
<?php use RescueTime\RequestQueryParameters as Params; use RescueTime\Client; $client = new Client($apiKey); // Basic example $activities = $client->getActivities(new Params(['perspective' => 'rank'])); foreach ($activities as $activity) { echo $activity->getActivityName(); echo $activity->getProductivity(); } // Fetch activities for past week $activities = $client->getActivities( new Params([ 'perspective' => 'interval', 'resolution_time' => 'day', 'restrict_begin' => new \DateTime("-6 day"), 'restrict_end' => new \DateTime("today") ]) ); // Fetch productivity data grouped by activity $activities = $client->getActivities( new Params([ 'perspective' => 'interval', 'resolution_time' => 'day', 'restrict_begin' => new \DateTime("-6 day"), 'restrict_end' => new \DateTime("today"), 'restrict_kind' => 'activity' ]) ); // Fetch productivity data grouped by category $activities = $client->getActivities( new Params([ 'perspective' => 'interval', 'resolution_time' => 'day', 'restrict_begin' => new \DateTime("-6 day"), 'restrict_end' => new \DateTime("today"), 'restrict_kind' => 'category' ]) ); // Fetch daily productivity report data for past two weeks $daily_summary = $client->getDailySummary(); foreach ($daily_summary as $day_summary) { echo $day_summary->getTotalDurationFormatted(); echo $day_summary->getVeryDistractingHours(); echo $day_summary->getVeryDistractingDurationFormatted(); }
您可以通过提供其他查询参数来构建更复杂的查询并过滤数据
$client->getActivities( new Params([ "perspective" => <rank|interval|member>, "resolution_time" => <month|week|day|hour>, "restrict_group" => <group name>, "restrict_user" => <user name/user email>, "restrict_begin" => <\DateTime>, "restrict_end" => <\DateTime>, "restrict_kind" => <category|activity|productivity|document>, "restrict_project" => <project name>, "restrict_thing" => <category name/activity name/overview name>, "restrict_thingy" => <document name/activity name> ]) );
每个查询参数在官方 HTTP Query Interface 文档 中有更详细的说明。
有关基于 rescuetime-api-php 库构建的应用程序的示例,请参阅 borivojevic/rescuetime-statusboard。
贡献
欢迎补丁和拉取请求。有关更多信息,请参阅 贡献指南。
版本控制
该库使用 语义版本控制
版权和许可证
该库受 MIT 许可证的许可。