You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

72 lines
2.6 KiB

<?php
namespace App\Services;
use App\BodyStat;
use Illuminate\Database\Eloquent\Model;
class XiaomiDataService
{
public function fetchData()
{
# code...
$curl = curl_init();
while (true) {
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-mifit-cn2.huami.com/users/1003389185/members/-1/weightRecords?r=AAF4B906-DC99-4026-A146-978ACE0CABE0&t=1628760878387&limit=1000&toTime=1578441809',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Host: api-mifit-cn2.huami.com',
'country: CN',
'v: 2.0',
'hm-privacy-ceip: true',
'accept: */*',
'appname: com.xiaomi.hm.health',
'channel: appstore',
'apptoken: NQVBQFJyQktGHlp6QkpbRl5LRl5qek4uXAQABAAAAAFfuN66ifbzCboB2ZH0DQx220t-vmAesadpY516w6jCvmgtevcO3dRgzBCrdXgE5Q3Ts6krWtaQd9uiZuTWa_sfFvwxQcubyHmZCUZns10TLymRIL1nIfLfplagK_YyTU0Io4j9SSBZPx5-kn8MntQhiq7MnOW0AZuvg7GKs94qd',
'accept-language: zh-Hans-CN;q=1, en-CN;q=0.9',
'x-request-id: 49EACAE1-63FB-4035-BF1E-CCED0579FD14',
'cv: 159_5.2.0',
'lang: zh_CN',
'timezone: Asia/Shanghai',
'appplatform: ios_phone',
'hm-privacy-diagnostics: false',
'user-agent: MiFit/5.2.0 (iPhone; iOS 14.7; Scale/3.00)'
),
));
$response = curl_exec($curl);
curl_close($curl);
$result = json_decode($response, true);
$items = $result["items"];
// dump($response);
foreach ($items as $item) {
# code...
$entity = $item["summary"];
$entity["generatedTime"] = date("Y-m-d H:i:s", $item["generatedTime"]);
dump($entity);
$body = new BodyStat();
foreach ($entity as $key => $value) {
$body->setAttribute($key, $value);
}
$body->save();
}
// dump($items);
$next = $result["next"];
dump($next);
exit;
}
}
}