Google api php клиент дава неправилно форматиран код за удостоверяване

Така че наскоро надстроих клиента на google api за PHP и имах проблеми да го накарам да удостовери и да ми даде токен. Преди работеше добре със старата библиотека, но тази нова библиотека, инсталирана чрез композитор, ми създаде няколко проблема. Ето моят код за справка:

if (!empty($gp_auth_code) {
    $client = new Google_Client();
    $client->setAuthConfig('<path to client.json file>');

    $client->addScope(Google_Service_Oauth2::PLUS_LOGIN);

    $client->setRedirectUri('<redirect URI>');


    $token = $client->fetchAccessTokenWithAuthCode($gp_auth_code);

    $gp_access_token = $token['access_token'];
    $gp_refresh_token = $client->refreshToken($token)['refresh_token'];
}

Всеки път, когато стартирам този код, той ми дава отговор "невалидно разрешение, неправилно образуван код за удостоверяване."

Има ли нещо, което правя грешно? $gp_auth_code работеше добре и пътят до json файла определено работи и URI адресът за пренасочване определено също е там. Всяка помощ ще бъде оценена.

По принцип се опитвам да получа достъп до информацията на профила в google plus, за да можем да регистрираме потребителя чрез google plus.


person janedoe    schedule 09.05.2018    source източник


Отговори (1)


Използвам клиентска библиотека Node.js googleapis. Ето моят случай:

Кодът за оторизация в хеш фрагмента на url е кодиран от encodeURIComponent api, така че ако подадете този код, за да поискате токен за достъп. Ще изведе грешка:

{ "error": "invalid_grant", "error_description": "Malformed auth code." }

Така че използвам decodeURIComponent за декодиране на кода за оторизация.

decodeURIComponent('4%2F_QCXwy-PG5Ub_JTiL7ULaCVb6K-Jsv45c7TPqPsG2-sCPYMTseEtqHWcU_ynqWQJB3Vuw5Ad1etoWqNPBaGvGHY')

След декодиране кодът за оторизация е:

"4/_QCXwy-PG5Ub_JTiL7ULaCVb6K-Jsv45c7TPqPsG2-sCPYMTseEtqHWcU_ynqWQJB3Vuw5Ad1etoWqNPBaGvGHY"

След това всичко работи добре.

person slideshowp2    schedule 26.02.2019