Das von Garmin Health Api zurückgegebene Ergebnis ist ein leeres Array
P粉842215006
2023-08-30 16:53:05
<p>Bei Verwendung der Garmin-Gesundheits-API erhalte ich ein leeres Antwortarray, es werden keine Fehler angezeigt und es wird nur ein leeres Array zurückgegeben. Mein Code lautet wie folgt: </p> ;
<pre class="brush:php;toolbar:false;">öffentliche statische Funktion get_garmin_health_data(Request $request)
{
// dd(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('Asien/Kolkata');
// $end_time = Carbon::now()->timestamp; // Einen Zeitstempel ähnlich 1552296328 generieren
// $start_time = Carbon::now()->subDays(1)->timestamp;
$start_time = strtotime('-20 Stunden');
$end_time = time();
// dd($start_time);
// $time = $request->oauth_nonce;
$time = time();
// $post = '{"event":{"type":"message_create","message_create":{"target":{"recipient_id":"123"},"message_data" :{"text":"Hallo Welt"}}}}';
$post = '{}';
$url = 'https://apis.garmin.com/wellness-api/rest/dailies';
$param_string = 'oauth_consumer_key=' . $garmin_consumer_key .
'&oauth_nonce=' . $Zeit .
'&oauth_signature_method=' . $sign_method .
'&oauth_timestamp=' . $Zeit .
'&oauth_token=' . $twitter_access_token .
'&oauth_version=' . $twitter_version .
'&uploadEndTimeInSeconds=' . $end_time .
'&uploadStartTimeInSeconds=' . $start_time;
// 为POST生成签名基本字符串
$base_string = 'GET&' . rawurlencode($url) . '&Ampere;' . rawurlencode($param_string);
// dd($base_string);
$sign_key = rawurlencode($garmin_consumer_secret) . '&Ampere;' . 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="' . $twitter_version . '"';
$url2 = 'https://apis.garmin.com/wellness-api/rest/dailies?uploadStartTimeInSeconds=' . $start_time . '&uploadEndTimeInSeconds=' . $end_time;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url2,
CURLOPT_RETURNTRANSFER => WAHR,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => WAHR,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'ERHALTEN',
CURLOPT_HTTPHEADER => Array(
'Autorisierung:' . $curl_header,
),
));
$response = curl_exec($curl);
dd($response);
curl_close($curl);
$res = json_decode($response);</pre>
<p>用PHP或CURL请求进行回答.
我也在处理这个Garmin-health API,并且得到了空白的响应(例如:[])。 但是我想是这样的!我在我的个人资料中没有任何活动,所以我得到了这个响应。