communitychair1/hv-client-lib

轻量级PHP库,易于连接到Microsoft HealthVault。

1.2.1 2013-05-02 12:07 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:57:34 UTC


README

一个易于使用的PHP库,用于通过HVRawConnectorPHP连接到Microsoft® HealthVault™。它增加了更友好的面向对象编程接口,并隐藏了HealthVault协议中(大部分)复杂的XML部分。

这个库是从HVClientPHP分叉出来的,并且已经为库创建和添加了许多新特性。变更列表位于本文件的底部。

安装

HVClientLibPHP依赖于HVRawConnectorPHP

您可以使用composer简单地安装HVRawConnectorPHP及其依赖项。

要将HVClientLibPHP添加到您的项目中作为库,将类似以下内容添加到您的composer.json的'require'部分

{
  "require": {
    "communitychair1/hv-client-lib": "dev-master"
  }
}

如果composer对未知的pear通道有抱怨,请在您的composer.json中添加以下内容

{
  "repositories": [
    {
      "type": "pear",
      "url": "http://pear.php.net"
    }
  ]
}

HVClientLibPHP的早期版本也可以通过pear安装,包括所有依赖项

pear channel-discover pear.biologis.com
pear channel-discover pear.querypath.org
pear install biologis/HVClient

此方法将HVClientLibPHP作为库安装,但不包含可用的示例应用程序。

状态

HVClientLibPHP不是一个完整的HealthVault SDK,但应该提供所有创建强大的HealthVault应用程序所需的PHP功能。

它基本上可以处理所有事物,但随着时间的推移,我们将在表示类中添加更多便利函数。

但当前实现的方法数量非常有限(基本方法是可用的)

  • GetPersonInfo
  • GetThings
  • PutThings

如果您需要更多功能并了解可用的文档,您可以直接使用HVRawConnectorPHP。在这种情况下,您最好将您的工作贡献出来,以便HVClientLibPHP能够更快地发展。

用法

这是一个简单示例,用于显示所有体重测量值

$hv = new HVClient($yourAppId, $_SESSION);
$hv->connect($yourCertThumbPrint, $yourPrivateKey);

$personInfo = $hv->getPersonInfo();
$recordId = $personInfo->selected_record_id;

$things = $hv->getThings('Weight Measurement', $recordId);
foreach ($things as $thing) {
  print $thing->weight->value->kg;
}

使用不同国家和语言连接不同的HealthVault™实例

$hv = new HVClient($yourAppId, $_SESSION);

$hv->setHealthVaultPlatform(
  'https://platform.healthvault-ppe.co.uk/platform/wildcat.ashx');
$hv->setLanguage('de');
$hv->setCountry('DE');

$hv->connect($yourCertThumbPrint, $yourPrivateKey);

要连接基于PHP的HealthVault™应用程序,您的应用程序需要由用户授权,并且用户本身需要针对HealthVault™进行身份验证。如果这些要求中的任何一个未得到满足,HVClientLibPHP将抛出相应的异常。在这种情况下,您可以创建一个链接,将用户带到HealthVault™进行身份验证,并授权您的应用程序,然后在您的网站之后将其带回来

$hv = new HVClient($yourAppId, $_SESSION);

try {
  $hv->connect($yourCertThumbPrint, $yourPrivateKey);
  $personInfo = $hv->getPersonInfo();
}
catch (HVRawConnectorUserNotAuthenticatedException $e) {
 print '<a href="' .
   $hv->getAuthenticationURL($yourReturnURL) .
   ">Authenticate</a>';
}

有关更多示例,请参阅HVClientLibPHP中包含的demo_app源代码。

HVClientLibPHP永远不会提供注册新HealthVault™应用程序或引导您完成入门过程的API,因为这可以很容易地使用应用程序配置中心完成。

因此,首先在那里注册您的应用程序,然后开始编码。

demo_app(又称Hello World)已经注册。对于您的第一次测试,您也可以使用其凭据立即开始。

演示

此存储库中包含的demo_app当前演示两个功能

  • 它查询用户的HealthVault记录中的所有"事物",并转储原始XML内容。
  • 该列表显示了您所选健康记录中上传的所有文件,并允许您上传更多文件。

默认情况下,它使用美国预生产版本的HealthVault。

要开始使用,请遵循上面的安装说明,将demo_app文件夹放在Web服务器上,并访问“demo_app/index.php”。

更改和新增

  • 向库中添加了多种类型,例如情绪状态、睡眠会话、与睡眠相关的活动和健康日志条目。
  • 创建了辅助方法,用于将健康库项目类型导出为JSON,并便于创建各种项目类型。
  • HV Connect功能已更新,支持在线和离线连接模式。
  • Get Things功能已更新,支持图片和文件的存储。
  • 创建了单元测试,以测试所有这些功能以及原始库的一些功能。

许可证

GPLv2.