Php API数据读取

Php API数据读取,php,json,api,curl,Php,Json,Api,Curl,我对API是相当陌生的,它正在工作。目前,我们正在为患者开发一个web应用程序来监测血压(BP),报告将自动在我们的web应用程序中提供 我们与一家为我们提供BP设备的公司达成了协议。一旦患者接受测试,设备将向我们的回调URL发送响应。 他们提供的文档让我有点困惑,因为我对API非常陌生 我能够使用API密钥和密码短语生成令牌 $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://xx

我对API是相当陌生的,它正在工作。目前,我们正在为患者开发一个web应用程序来监测血压(BP),报告将自动在我们的web应用程序中提供

我们与一家为我们提供BP设备的公司达成了协议。一旦患者接受测试,设备将向我们的回调URL发送响应。 他们提供的文档让我有点困惑,因为我对API非常陌生

我能够使用API密钥和密码短语生成令牌

 $curl = curl_init();
 curl_setopt_array($curl, array(
 CURLOPT_URL => 'https://xxx/auth/generateToken',
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_ENCODING => '',
 CURLOPT_MAXREDIRS => 10,
 CURLOPT_TIMEOUT => 0,
 CURLOPT_FOLLOWLOCATION => true,
 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
 CURLOPT_CUSTOMREQUEST => 'POST',
 CURLOPT_POSTFIELDS =>'{
 "api-key" : "myapikey",
 "pass-phrase" : "passphrase"
 }',
 CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
 ),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
但是现在生成令牌之后,我需要做什么?他们会在生成令牌后立即发送json格式的报告响应吗。或者我需要发送任何Get响应来获取响应吗? 我真的很困惑

文件

可以通过以下api调用生成/刷新api令牌: http url--https://xxx/auth/generateToken http方法——POST http头——内容类型:application/json 正文:

此API调用生成的令牌将随读取一起发送 http头参数名称(X-CARE-API-TOKEN)中的有效负载。 您可以使用此令牌验证源真实性

下面是每次读取时将推送的json有效负载 由设备获取到您的api url。 方法:邮寄 HTTP标头将是:

  • X-CARE-API-KEY={您的API密钥}
  • X-CARE-API-TOKEN={您的API TOKEN} HTTP正文将是:


  • 血压监护仪的设计

    生成令牌后,通常会有另一个API调用来实际获取生成令牌的数据

    它应该是另一个URL,末尾带有方法。 因此将有另一个CURL调用

    您的API开发人员可能会为此提供一些文档。
    或者你可能需要得到他们的支持。

    谢谢你为我澄清这一点。他们没有提供任何其他URL调用来获取响应。我可能需要询问那里的支持团队。每次患者进行测试时,支持人员都会将响应发送到我们的回调URL。现在,如果他们自己发送响应,我就可以使用json_解码响应并将其保存在数据库中。我说得对吗?但是,在我们的回调URL中生成令牌有什么用呢?是的,您是对的,响应需要进入数据库。回拨URL将来自您的服务器,您将在那里处理患者接受测试时他们发送的数据。然而,令牌可以一天生成一次,或者一周、一个月甚至更多。此令牌将仅为您的服务器提供真实性。我认为他们可能需要在标题或URL中使用令牌作为pram
     {
      "api-key" : "your api key sent to you",
      "pass-phrase" : "passphrase sent to you"
      }
      response :
      {
      "token" : "your api token"
      }
    
     {
      "readingData": {
      "id": 572043,
      "device": {
      "name": "Blood Pressure Monitor",
      "serialNumber": "BP800TEST04",
      "manufacturerNumber": "301",
      "model": "800"
      },
      "transmissionTime": 1612940047,
      "readingTime": 1612940041,
      "source": "Device",
      "userNumber": 1,
      "readings": [
      {
      "id": 1,
      "type": "BP Systolic",
      "value": "109",
      "unit": "mm/hg"
      },
      {
      "id": 2,
      "type": "BP Diastolic",
      "value": "145",
      "unit": "mm/hg"
      },
      {
      "id": 3,
      "type": "BP Heartrate",
      "value": "157",
      "unit": "Beats Per Minute"
      },
      {
      "id": 4,
      "type": "Irregular Heartbeat",
      "value": "1"
      },
      {
      "id": 5,
      "type": "Battery Level",
      "value": "98",
      "unit": "Percent"
      },
      {
      "id": 6,
      "type": "Signal Strength",
      "value": "10",
      "unit": "db"
      }
      ]
      }
      }