На основе примера кода, на который вы ссылаетесь, необходимо внести или попробовать как минимум пару изменений.
Во-первых, вам может потребоваться запросить разные области, поскольку области определяют, какиебудет возвращен.Этот код опирается на области, которые будут недействительными или более не предлагаются. области действия , которые вы должны использовать для получения профиля и электронной почты:
- openid
- профиль
- электронная почта
(Более длинные имена областей, которые вы используете , должны также работать, но вы можете попробовать и эти более простые.)
Так что login_url
на шаге 2 может выглядеть болеекак это:
$login_url = 'https://accounts.google.com/o/oauth2/v2/auth?scope=' . urlencode('openid profile email') . '&redirect_uri=' . urlencode(CLIENT_REDIRECT_URL) . '&response_type=code&client_id=' . CLIENT_ID . '&access_type=online';
Хотя конечная точка userinfo v2 все еще частично поддерживается, она устарела.Вместо этого попробуйте выполнить одно из следующих действий:
Однако есть еще несколько моментов, на которые следует обратить внимание:
- Не все данные могут быть доступны.Если пользователь не установил некоторую информацию профиля, API не сможет предоставить ее.
- Поля не будут такими же, как в конечной точке Plus.Таким образом, хотя данные могут быть там, они могут находиться в другом месте возвращаемого объекта.