huitiemesens / withings
Withings API 库。
dev-master
2016-03-30 12:56 UTC
Requires
- php: >=5.3.0
- huitiemesens/oauth: dev-master
This package is not auto-updated.
Last update: 2024-09-14 17:11:07 UTC
README
为基于 OAuth 的 Withings REST API 提供的基本包装器。有关其 OAuth 实现的详细信息,请参阅 oauth.withings.com。
此库和 Withings API 均处于 测试阶段。
此库不需要 PHP OAuth 扩展。它应该在任何 PHP >= 5.3 的服务器上运行。
此捆绑包允许您从 Withings 获取通知或手动获取信息。
安装
此包可以通过 composer 安装: "huitiemesens/withings": "dev-master"
用法
您需要一个客户端密钥和密钥。您可以在 http://oauth.withings.com 注册应用程序来获取它们。
具有数据库集成的简单但完整的 OAuth 工作流程示例
- 应用程序授权
$factory = new \Withings\ApiGatewayFactory; $factory->setCallbackURL( $withings_callback_url ); $factory->setCredentials( $withings_consumer_key , $withings_consumer_secret ); // these variables come from database $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']); $storage = $factory->getStorageAdapter(); $token = $storage->retrieveAccessToken('Withings'); $this->getUser()->setWithingsToken( $token->getRequestToken() ) ; // Your user entity must have a WithingsToken column $this->getUser()->setWithingsTokenSecret( $token->getRequestTokenSecret() ); // Your user entity must have a WithingsTokenSecret column $this->getUser()->setWithingsId( $_GET['user_id'] ); // Your user entity must have a WithingsUserId column $em->persist( $this->getUser() ); $em->flush(); }else { $auth_gateway->initiateLogin(); }
- 检索用户配置文件信息
public function withingsGetProfile() { $factory = new \Withings\ApiGatewayFactory; $factory->setCallbackURL( $withings_callback_url ); $factory->setCredentials( $withings_consumer_key , $withings_consumer_secret ); // these variables come from database $token = new \OAuth\OAuth1\Token\StdOAuth1Token(); $token->setRequestToken( $user->getWithingsToken() ); // user credentials $token->setRequestTokenSecret( $user->getWithingsTokenSecret() ); // user credentials $token->setAccessToken( $user->getWithingsToken() ) // user credentials; $token->setAccessTokenSecret( $user->getWithingsTokenSecret() ); // user credentials $adapter = new \OAuth\Common\Storage\Memory(); $adapter->storeAccessToken('Withings', $token); $factory->setStorageAdapter($adapter); $UserGateway = $factory->getUserGateway(); $profile = $UserGateway->getProfile( $user->getWithingId() ); // user withings id print_r ( $profile ) ; }
感谢 popthestack/fitbitphp 提供的代码结构。