É possível obter informações do perfil do usuário via API do Google? Se for possível, qual API devo usar?
Estou interessado nessas informações:
- Url para o perfil do usuário (por exemplo, https://profiles.google.com/115063121183536852887 );
- Gênero (sexo);
- Foto de perfil.
Também seria legal obter outras informações do perfil do usuário.
oauth
google-api
userinfo
glagola
fonte
fonte
curl -X GET "https://www.googleapis.com/oauth2/v1/userinfo?alt=json" -H"Authorization: Bearer accessTokenHere"
escopo - https://www.googleapis.com/auth/userinfo.profile
obter https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=youraccess_token
você obterá json:
Para Tahir Yasin:
Este é um exemplo de php.
Você pode usar a função json_decode para obter a matriz userInfo.
fonte
$userInfoArray
propriedades. Deve ser como$userInfoArray['email']
obter o endereço de e-mail do$userInfoArray
. NOTE A COTAÇÃO ÚNICA PARA ACESSAR RPOPERDADES.define(email, 'email')
;)Este escopo https://www.googleapis.com/auth/userinfo.profile foi descontinuado agora. Veja https://developers.google.com/+/api/auth-migration#timetable .
O novo escopo que você usará para obter informações de perfil é: profile ou https://www.googleapis.com/auth/plus.login
e o endpoint é - https://www.googleapis.com/plus/v1/people/ {userId} - userId pode ser apenas 'eu' para o usuário conectado no momento.
fonte
If you are directly requesting the “plus.me” scope, any other Google+ OAuth scopes, or making any Google+ API calls, please ensure that you remove these requests from your project before March 7, 2019.
- GoogleEstou usando
PHP
e resolvi isso usando a versão 1.1.4 do google-api-php-clientSupondo que o código a seguir seja usado para redirecionar um usuário à página de autenticação do Google:
Presumindo que um código de autenticação válido seja retornado ao
redirect_url
, o seguinte irá gerar um token do código de autenticação, bem como fornecer informações básicas de perfil:No entanto, o local não é retornado. Novas contas do YouTube não têm nomes de usuário específicos do YouTube
fonte
Estou usando a API do Google para .Net, mas sem dúvida você pode encontrar a mesma forma de obter essas informações usando outra versão da API. Como o usuário872858 mencionou, o escopo userinfo.profile foi descontinuado ( artigo do google ).
Para obter as informações do perfil do usuário, eu uso o seguinte código (parte reescrita do exemplo do Google ):
Então, você pode acessar quase tudo usando userProfile.
ATUALIZAÇÃO: para fazer este código funcionar, você deve usar os escopos apropriados no botão de login do Google. Por exemplo, meu botão:
fonte
Existem 3 etapas que precisam ser executadas.
É muito interessante que esse uso mais simples não seja descrito claramente em lugar algum. E eu acredito que há um perigo, você deve prestar atenção ao
verified_email
parâmetro que vem na resposta. Porque se eu não estiver errado , pode resultar em e-mails falsos para registrar seu aplicativo. (Esta é apenas minha interpretação, há uma boa chance de que eu possa estar errado!)Acho a mecânica do OAuth do Facebook muito claramente descrita.
fonte
Se você estiver em um ambiente da web do lado do cliente, a nova API auth2 javascript contém uma
getBasicProfile()
função muito necessária , que retorna o nome do usuário, e-mail e URL da imagem.https://developers.google.com/identity/sign-in/web/reference#googleusergetbasicprofile
fonte
Se você deseja apenas buscar a id de usuário do Google, o nome e a imagem de um visitante de seu aplicativo da web - aqui está minha solução de serviço de PHP puro para o ano de 2020, sem bibliotecas externas usadas -
Se você leu o guia Usando OAuth 2.0 para aplicativos de servidor da Web do Google (e cuidado, o Google gosta de alterar os links para sua própria documentação), então você deve executar apenas 2 etapas:
Um dos tokens retornados é chamado de "id_token" e contém a id do usuário, nome e foto do visitante.
Aqui está o código PHP de um jogo da web meu. Inicialmente, eu estava usando o SDK Javascript, mas depois percebi que dados falsos do usuário podiam ser passados para o meu jogo da web, ao usar apenas o SDK do lado do cliente (especialmente o ID do usuário, que é importante para o meu jogo), então mudei para usar PHP no lado do servidor:
Você pode usar uma biblioteca PHP para adicionar segurança adicional, verificando a assinatura JWT. Para meus propósitos, era desnecessário, porque confio que o Google não trairá meu pequeno jogo da web enviando dados falsos de visitantes.
Além disso, se você quiser obter mais dados pessoais do visitante, precisará de uma terceira etapa:
Ou você pode obter mais permissões em nome do usuário - consulte a longa lista no documento Escopos OAuth 2.0 para APIs do Google .
Finalmente, as constantes APP_ID e APP_SECRET usadas em meu código - você as obtém no console da API do Google :
fonte