Получение url-адреса изображения профиля Google+ с идентификатором пользователя



Я знаю, что многие API социальных сетей предоставляют способ построить url-адрес изображения профиля пользователя, используя их user_id или имя пользователя. Для Facebook это выглядит так:



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



теперь есть что-то вроде этого для Google Plus? Или любой другой способ получить изображение пользователя без вызова API??

813   10  

10 ответов:

Google изменил свою политику, поэтому старый способ получения изображения профиля Google теперь не будет работать, что было

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

новый способ сделать это

запрос URL

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

это даст url-адрес изображения профиля Google в формате json, как указано ниже

ответ :

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


больше параметры можно найти для отправки с URL, который вам может понадобиться от здесь

для более подробной информации вы также можете проверить данный вопрос, где я ответил на тот же тип проблемы как получить изображение пользователя через идентификатор пользователя в Google plus?

Удачи В Кодировании!!

обновление: метод ниже не работает с 2015 года

можно получить изображение профиля, и вы даже можете установить его размер:

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

пример: моя фотография профиля, с размером, установленным на 100 пикселей:

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

использование с тегом изображения:

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

надеюсь, что вы получите его работу!

обновление: Google прекратил поддержку этого метода, который теперь возвращает ошибку 404 (не найден).


все эти URL-адреса получают изображение профиля пользователя:

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}

они перенаправляют на тот же url-адрес изображения, который вы получаете от Google API, уродливую ссылку, как
lh6.googleusercontent.com/-x1W2-XNKA-A/AAAAAAAAAAI/AAAAAAAAAAA/ooSNulbLz8U/photo.jpg

самый простой-это непосредственно использовать как источник изображения:

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

в противном случае получить точно такой же url-адрес вызова Google API вы можете прочитать заголовки изображений,
например в PHP:

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

как описано в статье Fetch Google Plus Profile Picture using PHP.

подход 1: (больше не работает)

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

подход 2: (каждый запрос учитывается в ваших ограничениях скорости api, которые составляют 10k запросов в день бесплатно)

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

со следующим форматом ответа:

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

подход 3: (donot требует ключа api)

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

в ответе json вы получаете свойство с именем "gphoto$thumbnail", которое содержит url-адрес изображения профиля, например следующее:

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

вы можете заметить в url-адресе часть "s64-c", которая означает, что размер изображения должен быть 64, я пробовал использовать другие значения, такие как "s100-c", и они работали. Также, если вы удалите часть " s64-c "и добавите"?SZ=100" параметр, который также будет работать на данный момент. Хотя это не очень хороший способ получить изображение профиля пользователя gplus, но преимущество в том, что он не требует никакого ключа api.

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

/ / выводит пример: https://lh3.googleusercontent.com/-2N6fRg5OFbM/AAAAAAAAAAI/AAAAAAAAADE/2-RmpExH6iU/s64-c/photo.jpg

изменение: 64 в "s64" для размера

Если вы хотите показать изображение профиля для текущего вошедшего пользователя, вам даже не нужно знать {user_id}. Просто используя https://plus.google.com/s2/photos/profile/me будет достаточно.

вы можете получить URL для изображения профиля с помощью человек.получить метод Google + API. Это требует дополнительной поездки туда и обратно, но это самый надежный способ получить изображение.

вы технически можете также использовать URL https://s2.googleusercontent.com/s2/photos/profile/{id}?sz={size}, который затем перенаправит на конечный URL. {id} это идентификатор пользователя Google или одно из старых имен пользователей профилей Google (они все еще существуют для пользователей, у которых они были, но я не думаю, что вы можете создавать новые). {size} - это желаемый размер фотографии в пикселях. Я почти уверен, что это не документированная, поддерживаемая функция, поэтому я бы не полагался на нее ни для чего важного, поскольку она может уйти в любое время без уведомления. Но для быстрых прототипов или небольших одноразовых приложений этого может быть достаточно.

попытка доступа к url-адресу/s2/profile / photo работает для большинства пользователей, но не для всех.

единственным методом полного доказательства является использование API Google+. Вам не нужна аутентификация пользователя для запроса данных общего профиля, поэтому это довольно простой метод:

  1. получить ключ Google + API на https://cloud.google.com/console

  2. сделайте простой запрос GET:https://www.googleapis.com/plus/v1/people/+?ключ=

обратите внимание на + перед именем пользователя. Если вы используете идентификаторы пользователей вместо этого (длинная строка цифр), вам не нужно +

  1. вы получите очень полное представление JSON данных профиля, которое включает в себя: "image": {"url":"https://lh4.googleusercontent.com/..... остальная часть изображения url...."}

перепробовал все возможное.. вот заключительный фрагмент рабочего кода. Надеюсь, это поможет кому-то, кто ищет его.

    <?
$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;
?>

простой ответ: Нет

вы будете иметь, чтобы запрос человека, API и взять профиль изображения.URL-адрес данные, чтобы получить фото. AFAIK для этого url-адреса, содержащего идентификатор пользователя, нет формата по умолчанию.

Comments

    Ничего не найдено.