Получение URL-адреса профиля профиля Google+ с помощью user_id

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

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

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

Ответ 1

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?

Счастливое кодирование!!

Ответ 2

ОБНОВЛЕНИЕ: нижеприведенный метод не работает с 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">

Надеюсь, ты получишь это!

Ответ 3

UPDATE: 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-адрес вызова API Google, вы можете читать заголовки изображений,
например, в PHP:

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

как описано в статье Получить изображение профиля Google Plus с помощью PHP.

Ответ 4

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

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

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

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: (не требуется ключ 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.

Ответ 6

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

Ответ 7

Вы можете получить URL-адрес изображения профиля, используя метод people.get API Google+. Для этого требуется дополнительная поездка туда и обратно, но это самый надежный способ получить изображение.

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

Ответ 8

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

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

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

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

Ответ 9

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

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

Ответ 10

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

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