$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”:“权限不足:请求的身份验证范围不足。”
[Users.dataSources: list要求使用以下范围之一。
您似乎正在使用列表中的一个
Google_Service_Fitness :: FITNESS_ACTIVITY_READ
而且我已经测试过它的作用域确实允许调用该api,这意味着它与API无关。
问题是您可能已经对用户进行了身份验证,然后在代码中更改了作用域,而没有重新验证了请求新作用域的用户。您需要再次登录用户
'approval_prompt'=>'force'