내가 일하고 있어요 CMS 자신의 페이스 북에서 사용자의 프로필 이미지를 가져 URL (즉, http://facebook.com/users_unique_url ). 어떻게하면됩니까? 사용자가 애플리케이션 을 허용 할 필요없이 사용자의 프로필 이미지 URL을 가져 오는 Faceboook API 호출이 있습니까?
답변
이 URL을 통해 데이터를 가져 오기만하면됩니다 .
http://graph.facebook.com/userid_here/picture
userid_here
사진을 얻으려는 사용자의 ID로 바꿉니다 . HTTPS도 사용할 수 있습니다.
PHP file_get_contents
기능을 사용하여 해당 URL을 읽고 검색된 데이터를 처리 할 수 있습니다 .
자원:
http://developers.facebook.com/docs/api
참고 : 에서 PHP 의 기능 을 사용하여 해당 URL을 읽을 수 있도록 OpenSSL 확장이 활성화되어 php.ini
있는지 확인해야합니다 .file_get_contents
답변
표시하려면 :
50×50 픽셀
<img src="//graph.facebook.com/{{fid}}/picture">
폭 200 픽셀
<img src="//graph.facebook.com/{{fid}}/picture?type=large">
저장하려면 (PHP를 사용하여)
참고 : 이것을 사용하지 마십시오 . 아래 @Foreever의 의견을 참조하십시오.
$img = file_get_contents('https://graph.facebook.com/'.$fid.'/picture?type=large');
$file = dirname(__file__).'/avatar/'.$fid.'.jpg';
file_put_contents($file, $img);
여기서 $ fid는 Facebook의 사용자 ID입니다.
참고 : “18+”로 표시된 이미지의 경우 18 세 이상의 사용자로부터 유효한 access_token이 필요합니다.
<img src="//graph.facebook.com/{{fid}}/picture?access_token={{access_token}}">
2015 업데이트 :
사용자 이름을 사용하여 Graph API v2.0을 쿼리 할 수 없으므로 항상 사용해야 합니다 userId
.
답변
업데이트 :
2012 년 8 월 말부터 다양한 크기의 사용자 프로필 사진을 검색 할 수 있도록 API가 업데이트되었습니다. 선택적 너비 및 높이 필드를 URL 매개 변수로 추가하십시오.
https://graph.facebook.com/USER_ID/picture?width=WIDTH&height=HEIGHT
요청한 측정 기준 값은 어디 WIDTH
이며HEIGHT
가로 세로 비율을 유지하는 동안 최소 WIDTH
x 크기의 프로필 사진이 반환됩니다 HEIGHT
. 예를 들어
https://graph.facebook.com/redbull/picture?width=140&height=110
보고
{
"data": {
"url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/c0.19.180.142/s148x148/2624_134501175351_4831452_a.jpg",
"width": 148,
"height": 117,
"is_silhouette": false
}
}
업데이트 종료
사용자의 프로필 사진을 얻으려면 전화
https://graph.facebook.com/USER_ID/picture
여기서 USER_ID
사용자 ID 번호 또는 사용자 이름이 될 수 있습니다.
특정 크기의 사용자 프로필 사진을 얻으려면 전화
https://graph.facebook.com/USER_ID/picture?type=SIZE
SIZE
단어 중 하나로 대체 해야하는 곳
square
small
normal
large
원하는 크기에 따라
이 호출은 선택한 유형 매개 변수를 기반으로 한 크기의 단일 이미지로 URL 을 반환합니다 .
예를 들면 다음과 같습니다.
https://graph.facebook.com/USER_ID/picture?type=small
이미지의 작은 버전으로 URL을 반환합니다.
API는 실제 크기가 아니라 프로필 이미지의 최대 크기 만 지정합니다.
광장:
최대 너비와 높이는 50 픽셀입니다.
작은
최대 너비는 50 픽셀, 높이는 최대 150 픽셀입니다.
표준
최대 너비 100 픽셀 및 최대 높이 300 픽셀
큰
최대 너비는 200 픽셀, 최대 높이는 600 픽셀입니다.
기본 USER_ID / picture를 호출하면 정사각형 유형이 표시됩니다.
설명
위의 예에 따라 전화하면
https://graph.facebook.com/redbull/picture?width=140&height=110
Facebook SDK 요청 방법 중 하나를 사용하는 경우 JSON 응답 을 반환 합니다 . 그렇지 않으면 이미지 자체를 반환합니다. 항상 JSON을 검색하려면 다음을 추가하십시오.
&redirect=false
이렇게 :
https://graph.facebook.com/redbull/picture?width=140&height=110&redirect=false
답변
이진 콘텐츠가 아닌 이미지 URL을 얻으려면 :
$url = "http://graph.facebook.com/$fbId/picture?type=$size";
$headers = get_headers($url, 1);
if( isset($headers['Location']) )
echo $headers['Location']; // string
else
echo "ERROR";
USERNAME이 아닌 FACEBOOK ID를 사용해야합니다. 당신은 당신의 페이스 북 ID를 얻을 수 있습니다 :
답변
서버에 전체 크기 프로필 이미지를 저장하는 간단한 한 줄 코드.
<?php
copy("https://graph.facebook.com/FACEBOOKID/picture?width=9999&height=9999", "picture.jpg");
?>
이것은 php.ini에서 openssl이 활성화 된 경우에만 작동합니다.
답변
이것을 대답에 대한 주석으로 추가했지만 더 자세한 설명이 필요하다고 느꼈습니다. 2015 년 4 월경부터는 몇 번 제기 될 것입니다.
그래프 API의 V2부터 허용되는 답변이 더 이상 사용자 이름을 사용하여 작동하지 않습니다. 이제 사용자 ID가 먼저 필요하며 더 이상 사용자 이름을 사용하여이를 얻을 수 없습니다. 문제를 더욱 복잡하게하기 위해 개인 정보 보호를 위해 Facebook은 이제 앱마다 사용자 ID를 변경하고 있습니다 ( https://developers.facebook.com/docs/graph-api/reference/v2.2/user/ 및 https : //developers.facebook 참조) .com / docs / apps / upgrading / # upgrading_v2_0_user_ids )에 따라 사용할 수있는 사용자 ID를 검색하려면 적절한 인증이 필요합니다. 기술적으로 프로필 사진은 여전히 공개되어 있으며 / userid / picture에서 사용할 수 있습니다 ( https://developers.facebook.com/docs/graph-api/reference/v2.0/user/picture 및이 예제 사용자의 문서 참조) . http : //graph.facebook.com/v2.2/4/picture?redirect=0) 그러나 사용자의 표준 사용자 ID를 파악하는 것은 프로필을 기반으로 불가능한 것처럼 보입니다. 앱에서 내 유스 케이스 (FB 프로필 링크 옆에 프로필 사진을 표시하는 것)와의 상호 작용을 승인해야합니다.
누군가가 사용자 이름을 기반으로 프로필 사진을 얻는 방법을 찾은 경우 또는 다른 방법으로 프로필 사진을 검색하는 데 사용할 사용자 ID를 얻는 방법을 알고 있다면 공유하십시오! 그 동안 기존 그래프 URL은 2015 년 4 월까지 계속 작동합니다.
답변
한 가지 방법은 Gamlet이 답변에 게시 한 코드를 사용하는 것입니다.
-
다른 이름으로 저장
curl.php
-
그런 다음 파일에서 :
require 'curl.php'; $photo="https://graph.facebook.com/me/picture?access_token=" . $session['access_token']; $sample = new sfFacebookPhoto; $thephotoURL = $sample->getRealUrl($photo); echo $thephotoURL;
프로필을 공개하는데도 시간이 걸리기 때문에 게시 할 것이라고 생각했습니다. 프로필 사진이 공개되어 있지만 컬링 할 때 액세스 토큰이 있어야 합니다.