namelivia/fitbit-http-php

此包已被废弃,不再维护。未建议替代包。

PHP SDK 用于访问 Fitbit API

0.0.15 2021-08-07 11:25 UTC

README

Fitbit PHP SDK

免责声明

此项目不再维护,因此将被存档。我放弃该项目,因为我不再拥有任何 Fitbit 产品,所以无法进行测试,据我所知,它也不再被其他人使用。

如果您对此项目感兴趣,请随时与我联系。

关于

这是一个用于从您的 PHP 语言项目访问 Fitbit 官方 Web API 的包。它设计得便于您轻松查询和检索其平台上存储的所有数据,从活动日志到睡眠或心率信息。

安装

在项目的根目录中,使用 Composer 需要此包。

$ composer require namelivia/fitbit-http-php:~0.0.1

入门

在从 Fitbit Web API 获取数据之前,您首先需要在他们的平台 dev.fitbit.com注册您的应用程序。一旦提交表格并您的应用程序已注册,他们将提供一些您在下一步需要的凭证。这些凭证是

  • OAuth 2.0 客户端 ID
  • 客户端密钥。您还将提供一个回调 URL,这是客户端在授权您的应用程序访问其数据后将从 Fitbit 平台重定向到的 URL。

证明凭证

现在要开始,您需要创建一个 API 的新实例,如下所示,请注意,需要四个字符串参数来执行此操作

$api = new \Namelivia\Fitbit\Api\Api(
	'someClientId', #clientId
	'someClientSecret', #clientSecret
	'https://myapp.com/authorized', #redirectUrl
	'/tmp/token' #tokenPath
);

第一个参数是从 Fitbit 平台获得的 OAuth 2.0 客户端 ID,第二个参数也是从 Fitbit 平台获得的 客户端密钥。第三个参数是您的应用程序 URL,用户将从 Fitbit 授权屏幕被重定向到该 URL。第四个参数是存储授权令牌以供记住的路径,以便授权屏幕不会每次都出现。

  • clientId: 您的应用程序客户端 ID。
  • clientSecret: 您的应用程序客户端密钥。
  • redirectUrl: 您的应用程序回调 URL。
  • tokenPath: 令牌路径。

授权

现在您已经有了API,您需要通过调用isAuthorized来检查应用是否已被授权,如果之前在您提供的token路径上存储了有效的token或者您已经提供了一个授权代码,以下步骤将不再必要。如果API仍然未授权,需要从授权URL请求授权代码,这个URL可以通过调用getAuthUri函数获取。您可以重定向用户到该外部URI,然后Fitbit将利用代码中提供的返回URL将用户重定向回您的应用。在这个示例中,用户手动输入URI中的代码。最后,一旦您获得了授权代码,必须通过调用setAuthorizationCode函数将代码提供给API。

if (!$api->isAuthorized()) {
	echo 'Go to: ' . $api->getAuthUri() . "\n";
	echo "Enter verification code: \n";
	$code = trim(fgets(STDIN, 1024));
	$api->setAuthorizationCode($code);
}

初始化

在执行实际请求之前,最后的步骤是初始化API。您可以通过调用isInitialized来检查API是否已初始化,并通过调用initialize来初始化它。这将根据需要刷新或创建token并将它们存储在之前提供的token路径中。现在API已准备好查询数据。

if (!$api->isInitialized()) {
	$api->initialize();
}

获取Fitbit实例

为了查询数据,您需要获取一个Fitbit实例,为此,您需要将最近创建并初始化的API传递给构造函数,如下所示

$fitbit = new \Namelivia\Fitbit\Api\Fitbit($api);

获取数据

一切准备就绪,您现在可以开始请求数据。

$fitbit->activities()->favorites()->get();

有关更多信息,请参阅下一节中链接的文档。

文档

完整文档可以在GitHub仓库的wiki部分找到。您还可以参考官方Fitbit Web API文档

许可证

MIT

贡献

欢迎任何建议、错误报告、PR或其他类型的功能增强。首先创建一个问题,对于创建PR,请记住该项目有linting检查和单元测试,因此任何PR在合并之前都应遵守这两项检查,这些检查在打开或修改PR时将自动应用。

本地开发

此项目包含一个docker-compose.yml文件,因此如果您使用Docker和docker-compose,可以在不安装任何本地环境中的东西的情况下进行开发。只需首次运行docker-compose up --build来设置容器并启动测试。PHPUnit被配置为入口点,因此每次您想要在Docker化的PHP开发容器上执行测试时,只需运行docker-compose up即可。