stoufa06 / php-garmin-connect-api
用于连接和使用 Garmin 健康API的PHP库
1.9
2024-08-21 14:48 UTC
Requires
- php: >=7.1
- league/oauth1-client: ^1.10
Requires (Dev)
- vlucas/phpdotenv: ^4.2
This package is auto-updated.
Last update: 2024-09-21 15:04:22 UTC
README
描述
用于连接和使用 Garmin 健康API的PHP库
安装
composer require stoufa06/php-garmin-connect-api
示例
请查看示例文件夹
使用
获取授权链接
use Stoufa\GarminApi\GarminApi; try { $config = array( 'identifier' => getenv('GARMIN_KEY'), 'secret' => getenv('GARMIN_SECRET'), 'callback_uri' => getenv('GARMIN_CALLBACK_URI') ); $server = new GarminApi($config); // Retreive temporary credentials from server $temporaryCredentials = $server->getTemporaryCredentials(); // Save temporary crendentials in session to use later to retreive authorization token $_SESSION['temporaryCredentials'] = $temporaryCredentials; // Get authorization link $link = $server->getAuthorizationUrl($temporaryCredentials); } catch (\Throwable $th) { // catch your exception here }
获取令牌凭据
用户成功连接 Garmin 账户后,将重定向到 callback_uri。在 $_GET 中应有 "oauth_token" 和 "oauth_verifier"。
try { $config = array( 'identifier' => getenv('GARMIN_KEY'), 'secret' => getenv('GARMIN_SECRET'), 'callback_uri' => getenv('GARMIN_CALLBACK_URI') ); $server = new GarminApi($config); // Retrieve the temporary credentials we saved before $temporaryCredentials = $_SESSION['temporaryCredentials']; // We will now retrieve token credentials from the server. $tokenCredentials = $server->getTokenCredentials($temporaryCredentials, $_GET['oauth_token'], $_GET['oauth_verifier']); } catch (\Throwable $th) { // catch your exception here }
获取 Garmin 用户ID
$userId = $server->getUserUid($tokenCredentials);
填充活动
第一次连接 Garmin 账户并获取令牌凭据时,您无法获取以前的活动,因为 Garmin 不提供比您的令牌凭据更早的活动。相反,您需要使用填充方法来用以前的活动(不超过一个月)来完整您的令牌。
// backfill activities for last 7 days ago $params = [ 'summaryStartTimeInSeconds' => strtotime("-7 days", time()), 'summaryEndTimeInSeconds' => time() ]; $server->backfillActivitySummary($tokenCredentials, $params);
注销
$server->deleteUserAccessToken($tokenCredentials);
当前可用方法
获取活动摘要
$params = [ 'uploadStartTimeInSeconds' => 1598814036, // time in seconds utc 'uploadEndTimeInSeconds' => 1598900435 // time in seconds utc ]; // Activity summaries $server->getActivitySummary($tokenCredentials, $params); // Manually activity summaries $server->getManuallyActivitySummary($tokenCredentials, $params); // Activity details summaries $server->getActivityDetailsSummary($tokenCredentials, $params);
填充活动
// For backfill params can be with upload start time $params = [ 'uploadStartTimeInSeconds' => 1598814036, // time in seconds utc 'uploadEndTimeInSeconds' => 1598900435 // time in seconds utc ]; // or with summary start time $params = [ 'summaryStartTimeInSeconds' => 1598814036, // time in seconds utc 'summaryEndTimeInSeconds' => 1598900435 // time in seconds utc ]; // Backfill activity summaries $server->backfillActivitySummary($tokenCredentials, $params); // Backfill daily activity summaries $server->backfillDailySummary($tokenCredentials, $params); // Backfill epoch summaries $server->backfillEpochSummary($tokenCredentials, $params); // Backfill activity details summaries $server->backfillActivityDetailsSummary($tokenCredentials, $params); // Backfill sleep summaries $server->backfillSleepSummary($tokenCredentials, $params); // Backfill body composition summaries $server->backfillBodyCompositionSummary($tokenCredentials, $params); // Backfill stress details summaries $server->backfillStressDetailsSummary($tokenCredentials, $params); // Backfill user metrics summaries $server->backfillUserMetricsSummary($tokenCredentials, $params); // Backfill pulse ox summaries $server->backfillPulseOxSummary($tokenCredentials, $params); // Backfill respiration summaries $server->backfillRespirationSummary($tokenCredentials, $params);