namelivia / fitbit-http-php
PHP SDK 用于访问 Fitbit API
Requires
- php: ^7.3|^8.0
- guzzlehttp/guzzle: ^7.0.1
- kamermans/guzzle-oauth2-subscriber: ^1.0
- nesbot/carbon: ^2.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^9.4.2
README
免责声明
此项目不再维护,因此将被存档。我放弃该项目,因为我不再拥有任何 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文档
许可证
贡献
欢迎任何建议、错误报告、PR或其他类型的功能增强。首先创建一个问题,对于创建PR,请记住该项目有linting检查和单元测试,因此任何PR在合并之前都应遵守这两项检查,这些检查在打开或修改PR时将自动应用。
本地开发
此项目包含一个docker-compose.yml
文件,因此如果您使用Docker和docker-compose,可以在不安装任何本地环境中的东西的情况下进行开发。只需首次运行docker-compose up --build
来设置容器并启动测试。PHPUnit被配置为入口点,因此每次您想要在Docker化的PHP开发容器上执行测试时,只需运行docker-compose up
即可。