timoschlueter/php-runtastic

这是一个通过PHP获取Runtastic(www.runtastic.com)活动数据的类,因为Runtastic没有提供官方API,所以这是一个非常不严谨的方法。

dev-master 2016-01-18 06:30 UTC

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

特此授予任何获得此软件及其相关文档文件(“软件”)副本的任何人免费使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供者提供软件的人这样做,但须遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这些责任是否源于合同行为、侵权或其他原因,无论这些责任是否与软件或软件的使用或其他方式相关。