[google-api] user_id로 Google+ 프로필 사진 URL 가져 오기

많은 소셜 네트워크 API가 user_id 또는 사용자 이름을 사용하여 사용자의 프로필 사진에 대한 URL을 구성하는 방법을 제공한다는 것을 알고 있습니다. Facebook의 경우 다음과 같습니다.

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

이제 Google Plus에 이와 같은 것이 있습니까? 또는 API 호출없이 사용자의 사진을 얻는 다른 방법은 무엇입니까 ??



답변

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}

그러면 아래와 같이 json 형식의 Google 프로필 이미지 URL이 제공됩니다.

응답 :

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

여기 에서 필요할 수있는 URL과 함께 보낼 더 많은 매개 변수를 찾을 수 있습니다.

자세한 내용은 동일한 유형의 문제에 대해 답변 한 주어진 질문을 확인할 수도 있습니다.
Google plus에서 사용자 ID를 통해 사용자 이미지를 얻는 방법은 무엇입니까?

행복한 코딩 !!


답변

업데이트 : 아래 방법은 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}

Google API에서 가져온 것과 동일한 이미지 URL,
lh6.googleusercontent.com/-x1W2-XNKA-A/AAAAAAAAAAI/AAAAAAAAAAA/ooSNulbLz8U/photo.jpg 와 같은 추악한 링크로 리디렉션됩니다.

가장 간단한 방법은 다음과 같은 이미지 소스를 직접 사용하는 것입니다.

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

그렇지 않으면 Google API 호출의 정확히 동일한 URL을 얻으려면 이미지 헤더를 읽을 수 있습니다 (
예 : PHP).

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

PHP를 사용하여 Google Plus 프로필 사진 가져 오기 문서에 설명 된대로 .


답변

접근 방식 1 : (더 이상 작동하지 않음)

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

접근 방식 2 : (각 요청은 무료로 하루에 10,000 개 요청 인 API 속도 제한에 포함됩니다.)

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 응답에서 다음과 같은 프로필 사진 URL을 포함하는 “gphoto $ thumbnail”이라는 속성을 얻습니다.

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

URL에서 이미지 크기가 64라는 것을 의미하는 “s64-c”부분을 볼 수 있습니다. “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

변경 : 크기에 대한 “s64″의 64


답변

현재 로그인 한 사용자의 프로필 사진을 표시하려는 경우 {user_id}를 몰라도됩니다. 단순히 사용 https://plus.google.com/s2/photos/profile/me하면 충분합니다.


답변

Google+ API 의 people.get 메소드를 사용하여 프로필 이미지의 URL을 가져올 수 있습니다 . 추가 왕복이 필요하지만 이미지를 얻는 가장 안정적인 방법입니다.

기술적으로 URL https://s2.googleusercontent.com/s2/photos/profile/{id}?sz={size}을 사용 하여 최종 URL로 리디렉션 할 수도 있습니다 . {id}Google 사용자 ID 또는 이전 Google 프로필 사용자 이름 중 하나입니다 (이를 보유한 사용자에게는 여전히 존재하지만 더 이상 새로 만들 수 없다고 생각합니다). {size}원하는 사진 크기 (픽셀 단위)입니다. 나는 이것이 문서화되고 지원되는 기능 이 아니라는 것을 거의 확신 합니다. 그래서 언제라도 예고없이 사라질 수 있기 때문에 중요한 것에 의존하지 않을 것입니다. 그러나 빠른 프로토 타입이나 소규모 일회성 애플리케이션의 경우 충분할 수 있습니다.