programing

facebook graph api를 사용하여 사용자 프로필 사진을 표시하려면 어떻게 해야 하나요?

itsource 2022. 10. 15. 10:59
반응형

facebook graph api를 사용하여 사용자 프로필 사진을 표시하려면 어떻게 해야 하나요?

어플리케이션 캔버스 페이지에 사용자 프로필 사진을 표시하고 싶은데, graph api를 사용하여 표시할 수 있는 방법이 있습니까?

FBML로 할 수 있는 것은 알지만, 만들고 있는 플래시 게임에도 프로필 사진을 전달하고 싶기 때문에 API에서 프로필 사진을 가져와 변수로 보내야 합니다.지금까지 가지고 있는 코드는 다음과 같습니다.

$facebook = new Facebook(array(
    'appId'  => FACEBOOK_APP_ID,
    'secret' => FACEBOOK_SECRET_KEY,
    'cookie' => true,
    'domain' => 'myurl/facebook-test'
));

$session = $facebook->getSession();

        $uid = $facebook->getUser();
        $me = $facebook->api('/me');

        $updated = date("l, F j, Y", strtotime($me['updated_time']));

        echo "Hello " . $me['name'] . $me['picture'] . "<br />";
  echo "<div style=\"background:url(images/bg.jpg); width:760px; height:630px;\">" . "You last updated your profile on " . $updated . "</div>" . "<br /> your uid is" . $uid;

$me['picture']효과가 없는 것 같습니다만, 저는 아직 그래프 api에 익숙하지 않습니다.아마도 아마 아마 아마 몇 가지 실수를 하고 있을 겁니다!

프로필 사진의 URL을 알고 있는 사용자 ID는 다음과 같습니다.

http://graph.facebook.com/[UID]/picture

여기서 [UID] 대신 $uid 변수를 배치하면 해당 URL이 플래시에 전달됩니다.

다른 크기를 가져오려면 type 파라미터를 사용합니다.

type 인수를 사용하여 원하는 이미지 크기를 지정할 수 있습니다.이 인수는 정사각형(50x50), 소형(50픽셀 너비, 가변 높이) 및 대형(약 200픽셀 너비, 가변 높이) 중 하나여야 합니다.

또한 아래와 같이 파라미터를 제공하여 프로파일 사진의 크기를 조정할 수 있습니다.

https://graph.facebook.com/[UID]/picture?width=140&height=140

잘 될 것 같아.

  //create the url
  $profile_pic =  "http://graph.facebook.com/".$uid."/picture";

 //echo the image out
 echo "<img src=\"" . $profile_pic . "\" />"; 

문제 없습니다.

EDIT: 그럼 페이스북이 또 바뀌었군요!사용자 이름으로 더 이상 검색하지 않습니다. 아래 답변이 수정되었습니다.

https://graph.facebook.com/{{UID}}/picture?redirect=false&height=200&width=200
  • UID = 프로파일 또는 페이지 ID
  • redirect는 json(false)을 반환하거나 이미지(true)로 리다이렉트합니다.
  • 높이와 폭은 작물이다
  • 인증은 필요 없습니다.

예: https://graph.facebook.com/4/picture?redirect=false&height=200&width=200

Facebook 그래프 사진 문서

여기 나에게 효과가 있었던 코드가 있다!

유효한 세션이 진행 중이라고 가정하면

//Get the current users id
$uid = $facebook->getUser();

//create the url
$profile_pic =  "http://graph.facebook.com/".$uid."/picture";

//echo the image out
echo "<img src=\"" . $profile_pic . "\" />";

탠스는 레인한테 가, 이 자식아!

CURL을 사용하는 동안 프로필 사진을 가져오는 데 문제가 있었습니다. Facebook API 구현에 문제가 있다고 잠시 생각했지만 CURL에 조금 추가해야 합니다.

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

매우 중요한 것은 다른 Graph API 요구와 마찬가지로 JSON 데이터가 응답하지 않고 콜이 프로파일픽의 URL로 HTTP REDIRECT를 반환하는 것입니다.따라서 URL을 가져오려면 응답 HTTP 헤더를 읽거나 FQL을 사용해야 합니다.

반환되는 데이터는 영상 유형의 이진 데이터입니다.JavaScript 를 사용해 유저 사진을 취득하는 경우는, XMLHttpRequest 로 포토 데이터를 blob 타입으로 취득해, 응답으로부터 blob URL 를 취득해 주세요.참고하시기 바랍니다.

 var request = new XMLHttpRequest;
 var photoUri=config.endpoints.graphApiUri + "/v1.0/me/photo/$value";
 request.open("GET",photoUri);
 request.setRequestHeader("Authorization","Bearer "+token);
 request.responseType = "blob";
 request.onload = function (){
        if(request.readyState == 4 && request.status == 200){
               var image = document.createElement("img");
               var url = window.URL || window.webkitURL;
               var blobUrl = url.createObjectURL(request.response);
               image.src = blobUrl;
               document.getElementById("UserShow").appendChild(image);
        }
 };
 request.send(null); 

언급URL : https://stackoverflow.com/questions/3012905/how-can-i-display-the-users-profile-pic-using-the-facebook-graph-api

반응형