Le résultat renvoyé par Garmin Health Api est un tableau vide
P粉842215006
2023-08-30 16:53:05
<p>Lorsque j'utilise l'API de santé de Garmin, j'obtiens un tableau de réponses vide, aucune erreur ne s'affiche et seul un tableau vide est renvoyé. Je suis confus et je n'ai trouvé aucune solution : </p>. ;
<pre class="brush:php;toolbar:false;">fonction statique publique get_garmin_health_data(Request $request)
{
// jj(date('Y-m-d H:i:s'));
$garmin_consumer_key = env('CONSUMERKEY');
$garmin_consumer_secret = env('CONSUMERSECRET');
$twitter_access_token = $request->oauth_token ??
$twitter_access_token_secret = $request->oauth_token_secret ??
$twitter_version = '1.0';
$sign_method = 'HMAC-SHA1';
date_default_timezone_set('Asie/Calcutta');
// $end_time = Carbon::now()->timestamp; // Génère un horodatage similaire à 1552296328
// $start_time = Carbon::now()->subDays(1)->timestamp;
$start_time = strtotime('-20 heures');
$end_time = heure();
// jj($start_time);
// $time = $request->oauth_nonce;
$heure = heure();
// $post = '{"événement" :{"type" : "message_create","message_create" :{"cible" :{"recipient_id" : "123"},"message_data" :{"texte":"Bonjour tout le monde"}}}}';
$post = '{}';
$url = 'https://apis.garmin.com/wellness-api/rest/dailies';
$param_string = 'oauth_consumer_key=' . $garmin_consumer_key .
'&oauth_nonce=' . $temps .
'&oauth_signature_method=' . $sign_method .
'&oauth_timestamp=' . $temps .
'&oauth_token=' . $twitter_access_token .
'&oauth_version=' . $version_twitter .
'&uploadEndTimeInSeconds=' . $end_time .
'&uploadStartTimeInSeconds=' . $start_time;
// 为POST生成签名基本字符串
$base_string = 'GET&' . rawurlencode($url) . '&' . rawurlencode($param_string);
// jj($base_string);
$sign_key = rawurlencode($garmin_consumer_secret) . '&' . rawurlencode($twitter_access_token_secret);
// 生成唯一签名
$signature = base64_encode(hash_hmac('sha1', $base_string, $sign_key, true));
$curl_header = 'OAuth oauth_consumer_key="' . rawurlencode($garmin_consumer_key) . '", ' .
'oauth_nonce="' . rawurlencode($time) . '", ' .
'oauth_signature="' . rawurlencode($signature) . '", ' .
'oauth_signature_method="' . $sign_method . '", ' .
'oauth_timestamp="' . rawurlencode($time) . '", ' .
'oauth_token="' . rawurlencode($twitter_access_token) . '", ' .
'oauth_version="' . $version_twitter . '"';
$url2 = 'https://apis.garmin.com/wellness-api/rest/dailies?uploadStartTimeInSeconds=' . $start_time . '&uploadEndTimeInSeconds=' . $end_time ;
$curl = curl_init();
curl_setopt_array($curl, tableau(
CURLOPT_URL => $url2,
CURLOPT_RETURNTRANSFER => vrai,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => dix,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => vrai,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'OBTENIR',
CURLOPT_HTTPEADER => tableau(
'Autorisation :' . $curl_header,
),
));
$réponse = curl_exec($curl);
jj($réponse);
curl_close($curl);
$res = json_decode($response);</pre>
<p>
Je travaille également sur cette API Garmin-health et je reçois une réponse vide (ex : []). Mais je pense que oui ! Je n'ai aucune activité dans mon profil, je reçois donc cette réponse.