thesavior / fitbit
带有OAuth的Fitbit库
Requires
- php: >=5.4
- lusitanian/oauth: 0.1.*@dev
This package is not auto-updated.
Last update: 2024-09-14 13:50:13 UTC
README
OAuth基础上的FitBit FitBit REST API的基本包装。更多API开发信息请访问dev.fitbit.com。此库不需要在PHP中安装OAuth扩展,适用于任何php >= 5.4的服务器。
由于库和API都在BETA阶段,所以可能存在bug。我们期待随着API的发展更新库,同时尽力保持向后兼容。在此期间,如果您现在需要更多功能,请随意分支、添加功能和向我们发送pull request,我们会很高兴将其包括在内。
当前笔记
- 订阅:库提供了添加/删除订阅的基本方法,但不幸的是,您需要跟踪列表并在http://dev.fitbit.com上部署服务器端点来接收来自Fitbit的通知以及注册它们。更多关于此的思考请见Subscriptions-API。
- 未认证调用:FitBit API的一些方法可以在不需要完整的OAuth工作流程的情况下访问公共资源,如
searchFoods
和getActivities
。尽管如此,这些调用应与认证头一起签名,但应从签名基础字符串中省略access_token参数。在FitbitPHP中,您可以进行此类调用,但不应使用initSession
(因此不会设置access_token),并在调用之前明确设置要从中获取资源的用户(通过setUser
)。
安装
此包可以使用composer安装:"thesavior/fitbit": "dev-master"
用法
首先,像往常一样,不要忘记在http://dev.fitbit.com注册您的应用程序并获取您的应用程序的消费者密钥和密钥。
库本身为您处理整个OAuth应用程序授权工作流程以及页面视图之间的会话跟踪。这可以进一步用于提供“使用Fitbit登录”等特性(查看下一个代码示例)或只是授权应用程序代表用户使用FitBit API。
前端示例片段可能如下所示
<?php
$fitbit = new \Fitbit\Api($_SERVER["clientid", "clientsecret");
$fitbit->initSession();
$json = $fitbit->getProfile();
print_r($json);
注意,在每页无条件调用'initSession'将完全隐藏它们,不让未授权访客看到。然而,这不是在您的网站上使区域私有的正确方式。另一方面,如果您想在没有任何额外工作流程的情况下跟踪用户是否已授权访问FitBit,可以这样做(如果尚未授权)
if($fitbit->isAuthorized())
<you_are_authorized_user_yes_you_are>
注意。 默认情况下,所有请求都是针对授权用户(查看器)的资源进行的,但是您可以使用setUser
方法设置另一个用户,这仅适用于一些允许访问其他用户资源的端点,并且只有在该用户授权访问其数据(“朋友”或“任何人”)的情况下才有效。
如果您想在不使用完整的OAuth工作流程的情况下获取数据,只使用consumer_key而不使用access_token,您也可以这样做(请参阅FitBit API文档中哪些端点可以与这种调用配合使用)。
require 'fitbitphp.php';
$fitbit = new \Fitbit\Api(FITBIT_KEY, FITBIT_SECRET);
$fitbit->setUser('XXXXXX');
$json = $fitbit->getProfile();
print_r($json);