popthestack / fitbit
支持OAuth的Fitbit库。
dev-master
2014-12-19 16:04 UTC
Requires
- php: >=5.3.0
- lusitanian/oauth: ~0.2
This package is not auto-updated.
Last update: 2024-09-23 14:54:47 UTC
README
基于OAuth的FitBit REST API的基本封装。有关其OAuth实现的详细信息,请参阅dev.fitbit.com。
该库和Fitbit API均为测试版。
该库不需要PHP OAuth扩展。它应在PHP >= 5.3的任何服务器上运行。
安装
可以使用composer安装此包:"popthestack/fitbit": "dev-master"
使用方法
您需要一个消费者密钥和密钥。您可以通过在http://dev.fitbit.com注册应用程序来获取它们。
简单但完整的OAuth工作流程示例
$factory = new \Fitbit\ApiGatewayFactory; $factory->setCallbackURL($callback_url); $factory->setCredentials($consumer_key, $consumer_secret); $adapter = new \OAuth\Common\Storage\Session(); $factory->setStorageAdapter($adapter); $auth_gateway = $factory->getAuthenticationGateway(); if (isset($_GET['oauth_token']) && isset($_GET['oauth_verifier'])) { $auth_gateway->authenticateUser($_GET['oauth_token'], $_GET['oauth_verifier']); } elseif (isset($_GET['connect'])) { $auth_gateway->initiateLogin(); } if ($auth_gateway->isAuthorized()) { $user_gateway = $factory->getUserGateway(); $user_profile = $user_gateway->getProfile(); echo '<pre>'; print_r($user_profile); echo '</pre>'; } else { echo 'Not connected.'; }
如果您想从会话中检索OAuth令牌和密钥以存储在别处(例如数据库)
$storage = $factory->getStorageAdapter(); $token = $storage->retrieveAccessToken('FitBit'); // Save these somewhere: $oauth_token = $token->getRequestToken(); $oauth_secret = $token->getRequestTokenSecret();
以下是使用OAuth令牌和密钥而不使用Session存储适配器的示例。这有点麻烦,但有效。如果我有时间,我想用不这么严格的东西替换当前的OAuth库。
$token = new \OAuth\OAuth1\Token\StdOAuth1Token(); $token->setRequestToken($oauth_token); $token->setRequestTokenSecret($oauth_secret); $token->setAccessToken($oauth_token); $token->setAccessTokenSecret($oauth_secret); $adapter = new \OAuth\Common\Storage\Memory(); $adapter->storeAccessToken('FitBit', $token); $factory->setStorageAdapter($adapter); $user_gateway = $factory->getUserGateway(); $food_gateway = $factory->getFoodGateway(); $user_profile = $user_gateway->getProfile(); $user_devices = $user_gateway->getDevices(); $foods = $food_gateway->searchFoods('banana split'); echo '<pre>'; print_r($user_profile); print_r($user_devices); print_r($foods); echo '</pre>';
注意
- 默认情况下,所有请求都假设您想获取授权用户(查看者)的数据。然而,您可以使用几个端点访问其他Fitbit用户的数据,前提是有权访问他们的数据。这是通过在
ApiGatewayFactory和端点网关(例如UserGateway、FoodGateway)上使用setUserID方法来实现的。 - 订阅:此库有一些基本方法来添加/删除订阅,但跟踪列表并维护服务器端点以接收Fitbit通知的责任在于您,并在http://dev.fitbit.com上注册它们。有关更多信息,请参阅订阅API。