Uzyskiwanie adresu URL zdjęcia profilowego Google + z identyfikatorem użytkownika

Wiem, że wiele interfejsów API sieci społecznościowych umożliwia zbudowanie adresu url do zdjęcia profilowego użytkownika, używając jego user_id lub username. Na Facebook wygląda to tak:

http://graph.facebook.com/user_id/picture?type=square

Teraz jest coś takiego dla Google Plus? Lub inny sposób, aby uzyskać zdjęcie użytkownika bez wywołania API??

Author: ArVan, 2012-02-03

10 answers

Google zmieniło swoją politykę, więc stary sposób na uzyskanie obrazu profilu Google nie będzie teraz działać, co było

Https://plus.google.com/s2/photos/profile / (user_id)? sz=150

Nowy sposób na to jest

Request URL

https://www.googleapis.com/plus/v1/people/115950284...320?fields=image&key={YOUR_API_KEY}

To da adres URL obrazu profilu Google w formacie json, jak podano poniżej

Odpowiedź:

{
    "image": 
    {
         "url": "https://lh3.googleusercontent.com/-OkM...AANA/ltpH4BFZ2as/photo.jpg?sz=50"
    }
}


Więcej parametrów można znaleźć, Aby wysłać z adresem URL, który może być potrzebny od tutaj

Aby uzyskać więcej szczegółów, możesz również sprawdzić dane pytanie, na które odpowiedziałam dla tego samego typu problemu Jak uzyskać obraz użytkownika poprzez identyfikator użytkownika w Google plus?

Szczęśliwego Kodowania!!
 92
Author: Deepak Goswami,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:37

Aktualizacja: metoda poniżej nie działa od 2015

Możliwe jest uzyskanie zdjęcia profilowego, a nawet ustawienie jego rozmiaru:

https://plus.google.com/s2/photos/profile/<user_id>?sz=<your_desired_size>

Przykład: moje zdjęcie profilowe O rozmiarze ustawionym na 100 pikseli:

https://plus.google.com/s2/photos/profile/116018066779980863044?sz=100

Użycie z tagiem obrazka:

<img src="https://plus.google.com/s2/photos/profile/116018066779980863044?sz=100" width="100" height="100">

Mam nadzieję, że to działa!

 91
Author: Emil Stenström,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-31 16:16:56

UPDATE: Google zaprzestało obsługi tej metody, która teraz zwraca błąd 404 (not found) .


Wszystkie te adresy URL pobierają zdjęcie profilowe użytkownika:

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}

Przekierowują do tego samego adresu URL obrazu, który otrzymujesz z Google API, brzydki link jako
lh6.googleusercontent.com/-x1W2-XNKA-A/AAAAAAAAAAI/AAAAAAAAAAA/ooSNulbLz8U/photo.jpg

Najprostszym jest bezpośrednie użycie jak źródło obrazu:

<img src="https://www.google.com/s2/photos/profile/{user_id}">

W Przeciwnym Razie, aby uzyskać dokładnie ten sam adres url Google API call you can read image headers,
na przykład w PHP:

$headers = get_headers("https://www.google.com/s2/photos/profile/{user_id}", 1);
echo "<img src=$headers[Location]>";

Jak opisano w artykule Pobierz zdjęcie profilowe Google Plus za pomocą PHP .

 47
Author: Salvador,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-23 16:27:45

Podejście 1: (już nie działa)

https://plus.google.com/s2/photos/profile/<user_id>?sz=<your_desired_size>

Podejście 2: (każde żądanie liczy się w limicie szybkości api, który wynosi 10 000 zapytań dziennie za darmo)

https://www.googleapis.com/plus/v1/people/<user_id>?fields=image&key={YOUR_API_KEY}

O następującym formacie odpowiedzi:

{ "image": { "url": "lh5.googleusercontent.com/-keLR5zGxWOg/.../photo.jpg?sz=50"; } }

Podejście 3: (nie wymagaj klucza api)

http://picasaweb.google.com/data/entry/api/user/<user_id>?alt=json

W odpowiedzi json otrzymujesz właściwość o nazwie "gphoto$thumbnail", która zawiera adres URL zdjęcia profilowego w następujący sposób:

http://lh6.ggpht.com/-btLsReiDeF0/AAAAAAAAAAI/AAAAAAAAAAA/GXBpycNk984/s64-c/filename.jpg

Możesz zauważyć w adresie URL część " s64-c" co oznacza, że rozmiar obrazu ma wynosić 64, próbowałem użyć innych wartości, takich jak "s100-c" i zadziałały. Również jeśli usuniesz część "s64-c "i dołączysz"?parametr sz=100", który również będzie działał od teraz. Chociaż nie jest to bardzo dobry sposób na uzyskanie obrazu profilu użytkownika gplus, ale zaletą jest to, że nie wymaga żadnego klucza api.

 25
Author: Masum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-28 08:05:07

Google, nie potrzebne 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'};

// Przykład Wyjścia: https://lh3.googleusercontent.com/-2N6fRg5OFbM/AAAAAAAAAAI/AAAAAAAAADE/2-RmpExH6iU/s64-c/photo.jpg

Zmiana: 64 w " s64 " dla rozmiaru

 10
Author: Shawn Rebelo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-03 20:07:30

Jeśli chcesz pokazać zdjęcie profilowe dla aktualnie zalogowanego użytkownika, nie musisz nawet znać {user_id}. Wystarczy użycie https://plus.google.com/s2/photos/profile/me.

 5
Author: Danny Ruijters,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-13 15:20:32

Możesz uzyskać adres URL obrazu profilowego za pomocą osób .get metoda API Google+. To wymaga dodatkowej podróży w obie strony, ale jest najbardziej niezawodnym sposobem na uzyskanie obrazu.

Technicznie można również użyć URL https://s2.googleusercontent.com/s2/photos/profile/{id}?sz={size}, który następnie przekieruje do ostatecznego adresu URL. {id} to identyfikator użytkownika Google lub jedna ze starych nazw użytkowników profili Google(nadal istnieją dla użytkowników, którzy je mieli, ale nie sądzę, że można już tworzyć nowe). {size} jest pożądanym rozmiarem zdjęcia w pikselach. Jestem prawie pewien, że jest to a nie udokumentowana, obsługiwana funkcja, więc nie polegałbym na niej w niczym ważnym, ponieważ może odejść w dowolnym momencie bez powiadomienia. Ale w przypadku szybkich prototypów lub małych jednorazowych zastosowań może to być wystarczające.

 3
Author: Will Norris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-15 16:29:12

Próba dostępu do adresu URL /S2/profile/photo działa dla większości użytkowników, ale nie dla wszystkich.

Jedyną metodą pełnego dowodu jest użycie API Google+. Nie potrzebujesz uwierzytelniania użytkownika, aby zażądać publicznych danych profilu, więc jest to dość prosta metoda:

  1. Pobierz klucz API Google + na https://cloud.google.com/console

  2. Wykonaj proste polecenie GET na adres: https://www.googleapis.com/plus/v1/people/ + ?klucz=

Uwaga na + przed nazwą użytkownika. Jeśli zamiast tego używasz identyfikatorów użytkownika (długi ciąg cyfr), nie potrzebujesz +

  1. otrzymasz bardzo obszerną reprezentację JSON danych profilu, która obejmuje: "image": {"url": "https://lh4.googleusercontent.com/..... reszta adresu URL zdjęcia...."}
 2
Author: Erwan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-18 03:25:43

Próbowałem wszystkiego, co możliwe.. oto ostatni fragment kodu roboczego. Mam nadzieję, że pomoże to komuś, kto go szuka.

    <?
$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;
?>
 0
Author: suraj jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-15 11:18:59

Prosta odpowiedź: Nie

Będziesz musiał odpytywać API osoby i wziąć profil obraz.url Dane, aby uzyskać zdjęcie. AFAIK nie ma domyślnego formatu dla tego adresu URL, który zawiera identyfikator użytkownika.

 -5
Author: Kolja,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-03 12:36:10