Strava V3 API的PHP实现

1.4.0 2019-09-23 08:46 UTC

This package is auto-updated.

Last update: 2024-09-15 22:22:07 UTC


README

Build Status Minimum PHP Version Packagist Packagist Downloads

StravaApi

该类仅包含帮助向API发送数据并从API接收数据的几个方法。请阅读API文档以了解可用的端点。

目前不支持文件上传。

安装

使用Composer

composer require iamstuartwilson/strava

或手动将其添加到您的composer.json

{
    "require" : {
        "iamstuartwilson/strava" : "^1.4"
    }
}

手动

StravaApi.php复制到您的项目中,并在下一节中按照说明在您的应用程序中require它。

入门

使用您从注册的应用中获取的client_idclient_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身份验证流程是如何工作的。

  1. 选择如何加载StravaApi.php – 通过Composer自动加载器或通过手动require它。
  2. 替换文件顶部的三个配置值CALLBACK_URLSTRAVA_API_IDSTRAVA_API_SECRET
  3. 将文件放在您的服务器上,以便它可以通过CALLBACK_URL访问
  4. 将浏览器指向CALLBACK_URL并启动身份验证流程。

脚本打印了大量的冗余信息,以便您了解Strava oAuth流程是如何工作的。

示例请求

成功认证后,您可以与Strava的API进行通信。

所有更改Strava内容(postputdelete)的操作都需要在身份验证流程中将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