huitiemesens/withings

Withings API 库。

dev-master 2016-03-30 12:56 UTC

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 提供的代码结构。