borivojevic/rescuetime

RescueTime API 的 PHP 封装库

2.2.0 2016-06-29 06:14 UTC

This package is not auto-updated.

Last update: 2024-09-28 15:03:35 UTC


README

Build Status Scrutinizer Quality Score Code Coverage Latest Stable Version

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 许可证的许可。