php中的Google Fitness API

问题描述 投票:0回答:1
     $user = Socialite::driver('google')->user();

        // Set token for the Google API PHP Client
        $google_client_token = [
            'access_token' => $user->token,
            'refresh_token' => $user->refreshToken,
            'expires_in' => $user->expiresIn
        ];

        $client = new Google_Client();
        $client->setApplicationName("Laravel");
        $client->setDeveloperKey(env('GOOGLE_SERVER_KEY'));
        $client->setAccessToken(json_encode($google_client_token));
        $client->setScopes(Google_Service_Fitness::FITNESS_ACTIVITY_READ);

        $fitness_service = new Google_Service_Fitness($client);

        $dataSources = $fitness_service->users_dataSources;
        $dataSets = $fitness_service->users_dataSources_datasets;

        $listDataSources = $dataSources->listUsersDataSources("me");


        dd($dataSets);

我尝试过这个,但是它总是以给我结束“ domain”:“ global”,“ reason”:“ insufficientPermissions”,“ message”:“权限不足:请求的身份验证范围不足。”

php laravel google-api google-api-php-client google-fit
1个回答
0
投票

[Users.dataSources: list要求使用以下范围之一。

enter image description here

您似乎正在使用列表中的一个

Google_Service_Fitness :: FITNESS_ACTIVITY_READ

而且我已经测试过它的作用域确实允许调用该api,这意味着它与API无关。

问题是您可能已经对用户进行了身份验证,然后在代码中更改了作用域,而没有重新验证了请求新作用域的用户。您需要再次登录用户

'approval_prompt'=>'force'

© www.soinside.com 2019 - 2024. All rights reserved.