google-api - para - url de google+
Cómo obtener URL de imagen de perfil de Google+ con user_id (10)
ACTUALIZACIÓN: Google detuvo el soporte para este método, que ahora devuelve un error 404 (no encontrado) .
Todas estas URL traen la imagen de perfil de un usuario:
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}
Redireccionan a la misma URL de imagen que obtienes de la API de Google, un vínculo feo como
lh6.googleusercontent.com/-x1W2-XNKA-A/AAAAAAAAAAI/AAAAAAAAAAA/ooSNulbLz8U/photo.jpg
Lo más simple es usar directamente como fuente de imagen:
<img src="https://www.google.com/s2/photos/profile/{user_id}">
De lo contrario, para obtener exactamente la misma URL de una llamada a la API de Google, puede leer encabezados de imágenes,
por ejemplo en PHP:
$headers = get_headers("https://www.google.com/s2/photos/profile/{user_id}", 1);
echo "<img src=$headers[Location]>";
como se describe en el artículo Obtener foto de perfil de Google Plus usando PHP .
Sé que muchas API de redes sociales proporcionan una forma de construir una url para la imagen de perfil de un usuario, usando su user_id o nombre de usuario. Para Facebook, se ve así:
http://graph.facebook.com/user_id/picture?type=square
Ahora hay algo como esto para Google Plus? ¿O de otra forma para obtener la foto del usuario sin una llamada API?
Google había cambiado su política por lo que la forma antigua de obtener la imagen de perfil de Google no funcionará ahora, que era
https://plus.google.com/s2/photos/profile/(user_id)?sz=150
Nueva forma de hacerlo es
URL de solicitud
https://www.googleapis.com/plus/v1/people/115950284...320?fields=image&key={YOUR_API_KEY}
Eso le dará a la url de la imagen de perfil de Google en formato json como se indica a continuación
Respuesta:
{
"image":
{
"url": "https://lh3.googleusercontent.com/-OkM...AANA/ltpH4BFZ2as/photo.jpg?sz=50"
}
}
Se pueden encontrar más parámetros para enviar con URL que puede necesitar de here
Para obtener más información, también puede consultar la pregunta que he respondido para el mismo tipo de problema. ¿Cómo puedo obtener la imagen del usuario a través del ID de usuario en Google plus?
Happy Coding !!
Google, no se necesita 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''};
// Ejemplo de salidas: https://lh3.googleusercontent.com/-2N6fRg5OFbM/AAAAAAAAAAI/AAAAAAAAADE/2-RmpExH6iU/s64-c/photo.jpg
CAMBIO: el 64 en "s64" para el tamaño
Intenté todo lo posible ... aquí está la última pieza del código de trabajo. Espero que ayude a alguien que lo está buscando.
<?
$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;
?>
Puede obtener la URL de la imagen de perfil con el método here de la API de Google+. Eso requiere un viaje redondo adicional, pero es la forma más confiable de obtener la imagen.
También puede usar la URL https://s2.googleusercontent.com/s2/photos/profile/{id}?sz={size}
que luego redirigirá a la URL final. {id}
es el ID de usuario de Google o uno de los nombres de usuario antiguos de Google Profiles (todavía existen para los usuarios que los tuvieron, pero no creo que pueda crear otros nuevos). {size}
es el tamaño deseado de la foto en píxeles. Estoy casi seguro de que esta no es una función documentada y compatible, por lo que no confiaría en ella para nada importante, ya que puede desaparecer en cualquier momento sin previo aviso. Pero para prototipos rápidos o pequeñas aplicaciones únicas, puede ser suficiente.
Respuesta simple: no
Deberá consultar la persona API y tomar los datos del perfil image.url para obtener la foto. AFAIK no hay un formato predeterminado para esa url que contiene el ID de usuario.
Si desea mostrar la imagen de perfil para el usuario actualmente conectado, ni siquiera necesita saber el {user_id}. Simplemente usar https://plus.google.com/s2/photos/profile/me
será suficiente.
intentar acceder al / s2 / perfil / url de la foto funciona para la mayoría de los usuarios, pero no para todos.
El único método de prueba completo es usar la API de Google+. No necesita autenticación de usuario para solicitar datos de perfil público, por lo que es un método bastante simple:
Obtenga una clave API de Google+ en https://cloud.google.com/console
Realice una simple solicitud GET a: https://www.googleapis.com/plus/v1/people/+ <username>? Key =
Tenga en cuenta el + antes del nombre de usuario. Si usa identificadores de usuario en su lugar (la larga cadena de dígitos), no necesita el +
- obtendrá una representación JSON muy completa de los datos de perfil que incluye: "imagen": {"url": " https://lh4.googleusercontent.com/ ..... el resto de la URL de la imagen ... "}
ACTUALIZACIÓN: El método a continuación NO FUNCIONA desde 2015
Es posible obtener la imagen de perfil, e incluso puede establecer el tamaño de la misma:
https://plus.google.com/s2/photos/profile/<user_id>?sz=<your_desired_size>
Ejemplo: Mi foto de perfil, con un tamaño establecido en 100 píxeles:
https://plus.google.com/s2/photos/profile/116018066779980863044?sz=100
Uso con una etiqueta de imagen:
<img src="https://plus.google.com/s2/photos/profile/116018066779980863044?sz=100" width="100" height="100">
Espero que lo hagas funcionar!
Enfoque 1: (ya no funciona)
https://plus.google.com/s2/photos/profile/<user_id>?sz=<your_desired_size>
Enfoque 2: (cada solicitud cuenta en sus límites de tasa de api que es 10k solicitudes por día de forma gratuita)
https://www.googleapis.com/plus/v1/people/<user_id>?fields=image&key={YOUR_API_KEY}
con el siguiente formato de respuesta:
{ "image": { "url": "lh5.googleusercontent.com/-keLR5zGxWOg/.../photo.jpg?sz=50"; } }
Enfoque 3: (no requiere clave de API)
http://picasaweb.google.com/data/entry/api/user/<user_id>?alt=json
en la respuesta json obtienes una propiedad llamada "gphoto $ thumbnail", que contiene la URL de la foto de perfil como la siguiente:
http://lh6.ggpht.com/-btLsReiDeF0/AAAAAAAAAAI/AAAAAAAAAAA/GXBpycNk984/s64-c/filename.jpg
Puede observar en la url la parte "s64-c" que significa que el tamaño de la imagen es 64, he intentado usar otros valores como "s100-c" y funcionó. Además, si elimina la parte "s64-c" y agrega el parámetro "? Sz = 100", eso también funcionará a partir de ahora. Aunque esta no es una buena forma de obtener la imagen de perfil de un usuario gplus, la ventaja es que no requiere ninguna clave api.