iamstuartwilson / strava
Strava V3 API的PHP实现
1.4.0
2019-09-23 08:46 UTC
Requires
- php: >=5.5
Requires (Dev)
- phpunit/phpunit: ~4.8
README
StravaApi
该类仅包含帮助向API发送数据并从API接收数据的几个方法。请阅读API文档以了解可用的端点。
目前不支持文件上传。
安装
使用Composer
composer require iamstuartwilson/strava
或手动将其添加到您的composer.json
{ "require" : { "iamstuartwilson/strava" : "^1.4" } }
手动
将StravaApi.php
复制到您的项目中,并在下一节中按照说明在您的应用程序中require它。
入门
使用您从注册的应用中获取的client_id和client_secret实例化该类
require_once 'StravaApi.php'; $api = new Iamstuartwilson\StravaApi( $clientId, $clientSecret );
如果您只是测试端点/方法,可以跳过身份验证流程,并直接使用设置页面上的访问令牌。
您将需要通过请求访问码来身份验证您的Strava账户。您可以使用以下方法生成用于身份验证的URL
$api->authenticationUrl($redirect, $approvalPrompt = 'auto', $scope = null, $state = null);
当返回代码时,您必须将其交换为经过身份验证用户的访问令牌和刷新令牌
$result = $api->tokenExchange($code);
令牌交换结果包含其他数据,包括令牌。您可以通过结果对象的属性访问它们
$accessToken = $result->access_token; $refreshToken = $result->refresh_token; $expiresAt = $result->expires_at;
在发出任何请求之前,您必须设置从令牌交换结果返回的访问令牌和刷新令牌,或者通过您自己的Strava私人令牌
$api->setAccessToken($accessToken, $refreshToken, $expiresAt);
示例oAuth2身份验证流程
examples/oauth-flow.php
演示了oAuth2身份验证流程是如何工作的。
- 选择如何加载
StravaApi.php
– 通过Composer自动加载器或通过手动require它。 - 替换文件顶部的三个配置值
CALLBACK_URL
、STRAVA_API_ID
和STRAVA_API_SECRET
- 将文件放在您的服务器上,以便它可以通过
CALLBACK_URL
访问 - 将浏览器指向
CALLBACK_URL
并启动身份验证流程。
脚本打印了大量的冗余信息,以便您了解Strava oAuth流程是如何工作的。
示例请求
成功认证后,您可以与Strava的API进行通信。
所有更改Strava内容(post
、put
、delete
)的操作都需要在身份验证流程中将scope设置为write。
获取运动员统计信息
$api->get('athletes/:id/stats');
列出运动员活动
某些API端点支持GET参数
$api->get( 'athlete/activities', [ 'page' => 2, 'per_page' => 10, ] );
发布新的活动
$api->post( 'activities', [ 'name' => 'API Test', 'type' => 'Ride', 'start_date_local' => date('Y-m-d\TH:i:s\Z'), 'elapsed_time' => 3600, ] );
更新运动员的体重
$api->put('athlete', ['weight' => 70]);
发布版本
查看CHANGELOG.md。