Google Fitness API в php - PullRequest
       43

Google Fitness API в php

0 голосов
/ 10 января 2020
     $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);

Я пробовал это, но он всегда заканчивался, давая мне "домен": "глобальный", "причина": "достаточное количество разрешений", "сообщение": "Недостаточное разрешение: у запроса недостаточно областей аутентификации."

1 Ответ

0 голосов
/ 10 января 2020

Users.dataSources: list требует использования одной из следующих областей:

enter image description here

Вы, похоже, используете одну из тех, что в списке API.

Проблема в том, что вы, вероятно, аутентифицировали пользователя, а затем изменили область в своем коде, а не повторно аутентифицировали пользователя, запрашивающего новую область. Вам нужно снова войти в систему пользователя

'Approve_prompt' => 'force'

Вам нужно, чтобы оно всплыло и снова запросило разрешение

enter image description here

Возможно, вам придется go к вашей учетной записи Google и удалить разрешения приложений, чтобы сбросить его удалить

...