Obtenir L'url de L'image de profil Google+ avec l'identifiant de l'utilisateur
je sais que beaucoup D'API de réseau social fournissent un moyen de construire une url à l'image de profil d'un utilisateur, en utilisant leur user_id ou username. Pour Facebook il ressemble à ceci:
http://graph.facebook.com/user_id/picture?type=square
y a-t-il quelque chose comme ça pour Google Plus? Ou n'importe quel autre moyen d'obtenir le pic de l'utilisateur sans un appel D'API??
10 réponses
Google avait changé leur politique de sorte que l'ancienne façon d'obtenir L'image de profil Google ne fonctionnera pas maintenant, qui était
https://plus.google.com/s2/photos/profile / (user_id)?sz = 150
nouvelle façon de procéder:
Request URL
https://www.googleapis.com/plus/v1/people/115950284...320?fields=image&key={YOUR_API_KEY}
qui donnera l'url de L'image de profil Google dans le format json comme indiqué ci-dessous""
réponse:
{
"image":
{
"url": "https://lh3.googleusercontent.com/-OkM...AANA/ltpH4BFZ2as/photo.jpg?sz=50"
}
}
plus de paramètres peuvent être trouvés pour envoyer avec URL que vous pourriez avoir besoin de ici
Pour plus de détails, vous pouvez également vérifier la question à laquelle j'ai répondu pour le même type de problème Comment obtenir l'image de L'utilisateur par l'intermédiaire du code d'identification dans Google plus?
Bon Codage!!
mise à jour: la méthode ci-dessous ne fonctionne pas depuis 2015
il est possible d'obtenir l'image de profil, et vous pouvez même en définir la taille:
https://plus.google.com/s2/photos/profile/<user_id>?sz=<your_desired_size>
exemple: mon image de profil, avec une taille réglée à 100 pixels:
https://plus.google.com/s2/photos/profile/116018066779980863044?sz=100
utilisation avec une image tag:
<img src="https://plus.google.com/s2/photos/profile/116018066779980863044?sz=100" width="100" height="100">
J'espère que ça va marcher!
mise à jour: Google a arrêté le support de cette méthode, qui retourne maintenant une erreur 404 (non trouvé) .
toutes ces urls récupèrent l'image de profil d'un utilisateur:
https://www.google.com/s2/photos/profile/{user_id}
https://plus.google.com/s2/photos/profile/{user_id}
https://profiles.google.com/s2/photos/profile/{user_id}
ils redirigent vers la même url d'image que vous obtenez de L'API Google, un lien laid comme
lh6.googleusercontent.com/-x1W2-XNKA-A/AAAAAAAAAAI/AAAAAAAAAAA/ooSNulbLz8U/photo.jpg
le le plus simple est d'utiliser directement Comme image source:
<img src="https://www.google.com/s2/photos/profile/{user_id}">
sinon pour obtenir exactement la même url D'un appel API Google vous pouvez lire les en-têtes d'image,
par exemple en PHP:
$headers = get_headers("https://www.google.com/s2/photos/profile/{user_id}", 1);
echo "<img src=$headers[Location]>";
comme décrit dans l'article Fetch Google Plus image de profil en utilisant PHP .
approche 1: (ne fonctionne plus)
https://plus.google.com/s2/photos/profile/<user_id>?sz=<your_desired_size>
approche 2: (chaque demande compte dans les limites de taux de votre IPA qui est de 10k demandes par jour gratuitement)
https://www.googleapis.com/plus/v1/people/<user_id>?fields=image&key={YOUR_API_KEY}
avec le format de réponse suivant:
{ "image": { "url": "lh5.googleusercontent.com/-keLR5zGxWOg/.../photo.jpg?sz=50"; } }
Approche 3: (ne pas besoin de la clé api)
http://picasaweb.google.com/data/entry/api/user/<user_id>?alt=json
dans la réponse de json vous obtenez une propriété nommé "Gphoto $ thumbnail", qui contient l'url de l'image de profil comme suit:
http://lh6.ggpht.com/-btLsReiDeF0/AAAAAAAAAAI/AAAAAAAAAAA/GXBpycNk984/s64-c/filename.jpg
vous pouvez noter dans l'url la partie" s64-c "qui signifie la taille de l'image à 64, j'ai essayé d'utiliser d'autres valeurs comme" s100-C " et ils ont fonctionné. Aussi si vous supprimez la partie " s64-c "et ajoutez le"?sz=100" paramètre, qui fonctionne également à partir de maintenant. Bien que ce ne soit pas très bon moyen d'obtenir l'image de profil d'un utilisateur gplus, mais l'avantage est qu'il ne nécessite pas de clé api.
Google, Pas besoin d'API:
$data = file_get_contents('http://picasaweb.google.com/data/entry/api/user/<USER_ID>?alt=json');
$d = json_decode($data);
$avatar = $d->{'entry'}->{'gphoto$thumbnail'}->{'$t'};
/ / exemple de sortie: https://lh3.googleusercontent.com/-2N6fRg5OFbM/AAAAAAAAAAI/AAAAAAAAADE/2-RmpExH6iU/s64-c/photo.jpg
changement: le 64 dans "s64" pour la taille
Si vous voulez montrer la photo de profil de l'utilisateur actuellement connecté, vous n'avez même pas besoin de connaître l' {user_id}. Il suffit d'utiliser https://plus.google.com/s2/photos/profile/me
.
vous pouvez obtenir l'URL de l'image de profil en utilisant les personnes .obtenez la méthode de L'API Google+. Qui n'a besoin d'un aller-retour, mais est le moyen le plus fiable pour obtenir l'image.
vous pouvez techniquement aussi utiliser L'URL https://s2.googleusercontent.com/s2/photos/profile/{id}?sz={size}
qui redirigera alors vers l'URL finale. {id}
est le nom D'utilisateur de Google ou L'un des anciens noms D'utilisateur de Google Profiles (ils existent toujours pour les utilisateurs qui les avaient, mais je ne pense pas que vous pouvez créer de nouveaux ceux plus). {size}
est la taille désirée de la photo en pixels. Je suis presque certain que c'est et non une fonctionnalité documentée et supportée, donc je ne compterais pas sur elle pour quelque chose d'important car elle peut disparaître à tout moment sans préavis. Mais pour des prototypes rapides ou de petites applications ponctuelles, cela peut être suffisant.
essayer d'accéder à l'url /S2/profile/photo fonctionne pour la plupart des utilisateurs, mais pas tous.
la seule méthode de preuve complète est D'utiliser L'API Google+. Vous n'avez pas besoin d'authentification utilisateur pour demander des données de profil public, c'est donc une méthode assez simple:
-
obtenez une clé API Google+ sur https://cloud.google.com/console
-
Faire une simple requête GET: https://www.googleapis.com/plus/v1/people/+ < nom d'utilisateur >?clé=
Notez le + avant le nom d'utilisateur. Si vous utilisez des ID utilisateur à la place( la longue chaîne de chiffres), vous n'avez pas besoin du +
- vous obtiendrez une représentation JSON très complète des données de profil qui comprend: "image": {"url": " https://lh4.googleusercontent.com / ..... le reste de l'image URL...."}
a tout essayé.. voici le dernier morceau de code de travail. J'espère que ça aidera quelqu'un qui le cherche.
<?
$url='https://www.googleapis.com/plus/v1/people/116599978027440206136?fields=image%2Furl&key=MY_API_KEY&fields=image';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$d = json_decode($response);
$avatar_url = $d->{'image'}->{'url'};
echo $avatar_url;
?>