timoschlueter / php-runtastic
这是一个通过PHP获取Runtastic(www.runtastic.com)活动数据的类,因为Runtastic没有提供官方API,所以这是一个非常不严谨的方法。
Requires
- php: >=5.2.0
- ext-curl: *
This package is not auto-updated.
Last update: 2024-09-25 14:54:40 UTC
README
Runtastic-PHP 是一个PHP库,允许您连接到 Runtastic(www.runtastic.com)并获取所有活动。由于 Runtastic 没有提供官方API,所以这是一个非常不严谨的方法。
唯一的方法
入门
先决条件
- PHP >= 5.2
- JSON 和 CURL(带SSL)PHP扩展。
安装
composer require timoschlueter/php-runtastic
基本用法
<?php require __DIR__ . '/path/to/autoload.php'; use Runtastic\Runtastic; $r = new Runtastic(); $r->setUsername("your@email.com")->setPassword("your@password"); $activities = $r->getActivities(); echo "Total Number of activities: " . count($activities) . PHP_EOL; foreach ($activities as $activity) { echo $activity->id . PHP_EOL; }
Runtastic 类方法
setUsername()
[必选] 设置用于登录Runtastic的用户名
setPassword()
[必选] 设置用于登录Runtastic的密码
setTimeout()
设置cURL的连接超时时间(秒)。默认为10
login()
登录Runtastic(需要有效的用户名和密码)
logout()
登出并关闭cURL连接
getUsername()
返回Runtastic使用的用户名
getUid()
返回Runtastic使用的UID
getToken()
返回会话的令牌
getActivities($iWeek = null, $iMonth = null, $iYear = null)
返回您Runtastic账户中的所有活动,作为RuntasticActivityList(可用作对象数组)。如果
$iWeek
设置,将返回请求周数内的所有活动(周从星期一开始)。$iMonth
设置,将返回请求月份内的所有活动。$iYear
设置,将返回请求年份内的所有活动。
$iWeek
和 $iMonth
可以与 $iYear
一起使用。如果 $iYear
为null,则用于过滤的当前年份。如果您不指定任何参数,则此函数将返回所有活动。
RuntasticActivityList 类方法
我们之前看到的 Runtastic 类的 getActivities
函数返回一个 RuntasticActivityList 对象。该类允许您使用以下方法轻松过滤活动:
filterBy([])
您可以根据活动对象中定义的每个对象进行过滤。这是一个典型的活动对象的样子
array(1) {
[0]=>
object(stdClass)#11 (24) {
["id"]=>
int(1111111)
["type"]=>
string(7) "cycling"
["type_id"]=>
int(3)
["duration"]=>
int(630003)
["distance"]=>
int(2435)
["pace"]=>
float(4.31213333333)
["speed"]=>
string(6) "13.914"
["kcal"]=>
int(48)
["heartrate_avg"]=>
int(0)
["heartrate_max"]=>
int(0)
["elevation_gain"]=>
float(18)
["elevation_loss"]=>
float(19)
["surface"]=>
string(4) "road"
["weather"]=>
string(5) "sunny"
["feeling"]=>
string(7) "awesome"
["weather_id"]=>
int(1)
["feeling_id"]=>
int(1)
["surface_id"]=>
int(1)
["notes"]=>
string(0) ""
["page_url"]=>
string(47) "/en/users/Example-User/sport-sessions/1111111"
["create_route_url_class"]=>
string(0) ""
["create_route_url"]=>
string(36) "/en/routes/new?sport_session=1111111"
["map_url"]=>
string(201) ""
["date"]=>
object(stdClass)#8 (6) {
["year"]=>
int(2011)
["month"]=>
string(2) "05"
["day"]=>
string(2) "19"
["hour"]=>
int(22)
["minutes"]=>
int(18)
["seconds"]=>
int(23)
}
}
}
因此,例如,您可以按如下方式进行过滤:
$activities = $r->getActivities()->filterBy(["type"=>"strolling", "weather"=>"good"]); echo "Number of strolling activities with good weather: " . count($activities) . PHP_EOL;
许可证
MIT许可证(MIT)
版权所有(c)2014 Timo Schlueter timo.schlueter@me.com
特此授予任何获得此软件及其相关文档文件(“软件”)副本的任何人免费使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供者提供软件的人这样做,但须遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这些责任是否源于合同行为、侵权或其他原因,无论这些责任是否与软件或软件的使用或其他方式相关。