Trouver Google URL de l'image de profil lorsque l'utilisateur est connecté en utilisant le serveur OpenID de Google

StackOverflow https://stackoverflow.com/questions/4004309

  •  25-09-2019
  •  | 
  •  

Question

est-il possible de trouver l'image de profil d'un utilisateur qui est connecté en utilisant son / son compte google (par OpenID).

Je l'ai vérifié stackoverflow et il semble qu'ils utilisent un service gravatar pour attribuer un avatar à l'adresse e-mail. mais il devrait être possible de récupérer le profil de l'utilisateur Google image directement à partir de Google.

aucun indice?

Était-ce utile?

La solution

Il est impossible avec OpenId seul. Vous avez deux solutions:

  • Vous n'utilisez pas l'image d'image Google, mais une image fournie par un tiers comme Gravatar (c'est la façon la plus simple et il est ce qui est utilisé par Stackoverflow);

  • Vous utilisez le API Google Apps Profils : voir there pour récupérer la photo. Dans ce cas, l'utilisateur doit être authentifié, par exemple avec le OAuth Protocole : voir la documentation Google il . Si vous choisissez cette solution, je suppose que vous continuerez à utiliser OpenId, de sorte que vous utiliserez à la fois OpenId et OAuth. Google prend en charge un protocole hybride pour simplifier ce processus: protocole hybride OpenId + OAuth

    <. / li>

it helps ...

Autres conseils

MISE À JOUR: actuellement, cette approche ne fonctionne pas

J'utilise actuellement cette approche:

  1. essayez de charger http://profiles.google.com/ s2 / photos / profil / moi? sz = 32 (Sz est la taille de l'image)
  2. si la charge est échoué, utilisez l'icône de Google factice
  3. Je suis aussi remarqué que si après avoir montré avatar je me connecte avec un autre compte Google, l'image de l'avatar est toujours vieux. Pour éviter cela, je suis d'ajouter "& cache_fix =" url à l'image.

    $(".social_avatar")
        .load(function() { $(".social_avatar").css('visibility', 'visible'); })
        .error(function() { $(".social_avatar").attr('src', "/dummy_google_icon.png"); })
        .css('visibility', 'hidden')
        .attr("src", "http://profiles.google.com/s2/photos/profile/me?sz=32&cache_fix=<userid>");
    

EDIT: Cela ne fonctionne plus parce que Google Buzz est interrompu Je gardais la réponse à des fins historiques seulement.

https://www.googleapis.com/buzz/v1/people/[your google account name]/@self

Donne un fichier XML. Vous pouvez alors obtenir le contenu de la balise , qui à son tour est l'URL de la vignette de profil.

S'il vous plaît noter que l'utilisateur doit être connecté pour que cela fonctionne.

Hope this helps

Il existe une API fournie par http://www.avatarapi.com/ qui retourne le nom de l'utilisateur et photo de profil à partir d'une adresse e-mail et basée sur les informations publiques de Google.

Il peut être appelé via SOAP ou HTTP à ce point final de l'API: http://www.avatarapi.com/avatar.asmx

L'un des avantages de cette API est qu'il ne nécessite pas l'utilisateur à authentifier avec Google, mais dans votre cas, vous avez dit que l'utilisateur a déjà été signé, donc cela ne peut vous concerner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top