Garmin Health Api返回的结果为空数组
P粉842215006
P粉842215006 2023-08-30 16:53:05
[PHP讨论组]

使用Garmin的健康健康API时,获取到空的响应数组,不显示任何错误,只返回一个空的数组,我很困惑,没有找到任何解决方案,我的代码如下:

public static function 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('Asia/kolkata');
    // $end_time = Carbon::now()->timestamp; // 产生类似于1552296328的时间戳
    // $start_time = Carbon::now()->subDays(1)->timestamp;
    $start_time = strtotime('-20 hours');
    $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":"Hello world"}}}}';
    $post = '{}';
    $url = 'https://apis.garmin.com/wellness-api/rest/dailies'; 
    $param_string = 'oauth_consumer_key=' . $garmin_consumer_key .
        '&oauth_nonce=' . $time .
        '&oauth_signature_method=' . $sign_method .
        '&oauth_timestamp=' . $time .
        '&oauth_token=' . $twitter_access_token .
        '&oauth_version=' . $twitter_version .
        '&uploadEndTimeInSeconds=' . $end_time .
        '&uploadStartTimeInSeconds=' . $start_time;

    // 为POST生成签名基本字符串
    $base_string = 'GET&' . rawurlencode($url) . '&' . rawurlencode($param_string);
    // dd($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="' . $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 => 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(
            'Authorization:' . $curl_header,
        ),
    ));
    $response = curl_exec($curl);
    dd($response);
    curl_close($curl);
    $res = json_decode($response);

请为这个问题提供一个解决方案,如果可能的话,用PHP或CURL请求进行回答。

P粉842215006
P粉842215006

全部回复(1)
P粉478188786

我也在处理这个Garmin-health API,并且得到了空白的响应(例如:[])。 但是我想是这样的!我在我的个人资料中没有任何活动,所以我得到了这个响应。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号