Получение 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.
Ответ 5
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" для размера
Ответ 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-адреса, который содержит идентификатор пользователя.