2014-10-17 4 views
0

다음 코드를 사용하여 사용자 프로필 사진에 액세스하고 있습니다. ..facebook php SDK를 사용하여 facebook 프로필 사진에 액세스하는 방법은 무엇입니까?

<?php 
session_start(); 
include 'facebook-php-sdk/autoload.php'; 

use Facebook\FacebookRedirectLoginHelper; 
use Facebook\FacebookRequest; 
use Facebook\FacebookSession; 

FacebookSession::setDefaultApplication('XXXX', 'XXXX'); 
$helper = new FacebookRedirectLoginHelper('http://localhost/oauth/login.php'); 
try { 

    $session = $helper->getSessionFromRedirect(); 

} catch(FacebookRequestException $ex) { 
// When Facebook returns an error 

} catch(\Exception $ex) { 
// When validation fails or other local issues 

} 
if ($session) { 
    // Logged in 


    // $request = new FacebookRequest($session, 'GET', '/me'); 
    // $response = $request->execute(); 
    // $graphObject = $response->getGraphObject(); 


    // var_dump($graphObject->asArray()); 

    $request = new FacebookRequest(
     $session, 
     'GET', 
     '/me/picture' 
    ); 
    $response = $request->execute(); 
    $graphObject = $response->getGraphObject(); 

    var_dump($graphObject->asArray()); 
} 

?>

내가 요청

<?php 
session_start(); 

include 'facebook-php-sdk/autoload.php'; 

use Facebook\FacebookRedirectLoginHelper; 
use Facebook\FacebookRequest; 
use Facebook\FacebookSession; 

$permissions = array(
    'email', 
    'user_location', 
    'user_birthday', 
    'user_photos', 
    'public_profile' 
); 

/* Set the public and secret keys */ 
FacebookSession::setDefaultApplication('XXX', 'XXX'); 

$helper = new FacebookRedirectLoginHelper('http://localhost/oauth/login.php'); 
$loginUrl = $helper->getLoginUrl($permissions); 
// Use the login url on a link or button to redirect to Facebook for authentication 

?> 
    <a href="<?php echo $loginUrl; ?>">Login using facebook</a> 

<?php 

?>

을 생성하는 방법이며,이 페이지의 사용자가 리디렉션입니다

나는 항상 "array (0) {}"-> 빈 배열을 출력합니다. 나는이 코드에 무슨 문제가 있는지 파악하지 못했습니다. 로그인 URL이나 그래프 쿼리에 문제가있는 동안 일부 허가를 놓쳤습니까?

그리고 여기에 내가 몇 가지 기본 동작을 예상 $ 응답 객체

It Workedobject(Facebook\FacebookResponse)#10 (5) { 
    ["request":"Facebook\FacebookResponse":private]=> 
    object(Facebook\FacebookRequest)#4 (6) { 
    ["session":"Facebook\FacebookRequest":private]=> 
    object(Facebook\FacebookSession)#8 (2) { 
     ["accessToken":"Facebook\FacebookSession":private]=> 
     object(Facebook\Entities\AccessToken)#3 (3) { 
     ["accessToken":protected]=> 
     string(221) "CAAFIKIRoZBB0BAHnkev9CzhEZA0iOCauwOQya3bz5ZBwxzG4jEM3CyK8iU4QRcZB1fdGSfBfClLSCMbGhKiguMZBTiXZB2imzZCf8XLzifaJsqjXufJ5Y K9SxkZBboZCBWvOda4CDSNwvOf6rFW2D5qqZBZC7nFUb1tWMFTfkavkAWntBRjN6O3vZAnqkISkmpGqGqphx3JR99ca3G9gIxTiMlAn" 
     ["machineId":protected]=> 
     NULL 
     ["expiresAt":protected]=> 
     NULL 
     } 
     ["signedRequest":"Facebook\FacebookSession":private]=> 
     NULL 
    } 
    ["method":"Facebook\FacebookRequest":private]=> 
    string(3) "GET" 
    ["path":"Facebook\FacebookRequest":private]=> 
    string(3) "/me" 
    ["params":"Facebook\FacebookRequest":private]=> 
    array(2) { 
     ["access_token"]=> 
     string(221) "CAAFIKIRoZBB0BAHnkev9CzhEZA0iOCauwOQya3bz5ZBwxzG4jEM3CyK8iU4QRcZB1fdGSfBfClLSCMbGhKiguMZBTiXZB2imzZCf8XLzifaJsqjXufJ5YK9 SxkZBboZCBWvOda4CDSNwvOf6rFW2D5qqZBZC7nFUb1tWMFTfkavkAWntBRjN6O3vZAnqkISkmpGqGqphx3JR99ca3G9gIxTiMlAn" 
     ["appsecret_proof"]=> 
     string(64) "e30042c6689e1ca31de1057f700c95f37dda509544fed8615cc413ae085e5c08" 
    } 
    ["version":"Facebook\FacebookRequest":private]=> 
    string(4) "v2.0" 
    ["etag":"Facebook\FacebookRequest":private]=> 
    NULL 
    } 
    ["responseData":"Facebook\FacebookResponse":private]=> 
    object(stdClass)#7 (13) { 
    ["id"]=> 
    string(15) "703241603086465" 
    ["birthday"]=> 
    string(10) "08/13/1988" 
    ["email"]=> 
    string(19) "[email protected]" 
    ["first_name"]=> 
    string(8) "Saumitra" 
    ["gender"]=> 
    string(4) "male" 
    ["last_name"]=> 
    string(3) "Dey" 
    ["link"]=> 
    string(60) "https://www.facebook.com/app_scoped_user_id/703241603086465/" 
    ["location"]=> 
    object(stdClass)#9 (2) { 
     ["id"]=> 
     string(15) "110561898965802" 
     ["name"]=> 
     string(13) "Tezpur, Assam" 
    } 
    ["locale"]=> 
    string(5) "en_US" 
    ["name"]=> 
    string(12) "Saumitra Dey" 
    ["timezone"]=> 
    float(5.5) 
    ["updated_time"]=> 
    string(24) "2014-09-12T00:44:34+0000" 
    ["verified"]=> 
    bool(true) 
    } 
    ["rawResponse":"Facebook\FacebookResponse":private]=> 
    string(389) "{"id":"703241603086465","birthday":"08\/13\/1988","email":"smit.new1\u0040gmail. com","first_name":"Saumitra","gender":"male","last_name":"Dey","link":"https:\/\/www.facebook. com\/app_scoped_user_id\/703241603086465\/","location":{"id":"110561898965802","name":"Tezpur, Assam"},"locale":"en_US","name":"Saumitra  Dey","timezone":5.5,"updated_time":"2014-09-12T00:44:34+0000","verified":true}" 
    ["etagHit":"Facebook\FacebookResponse":private]=> 
    bool(false) 
    ["etag":"Facebook\FacebookResponse":private]=> 
    string(42) ""895f82630994e22ce349e5ab8315fe8a9c0665e1"" 
} 
+0

시도를 위해서 var_dump와 당신이 – luschn

+0

조심 무엇을 얻을 참조하십시오 액세스 토큰이 볼은 ... – luschn

+0

가 @luschn을 지적 해 주셔서 감사합니다, 나는이 응용 프로그램을 삭제, 난 그냥했다 테스트지만 실제 앱은 아닙니다. – smit

답변

3

의 vardump이다하지만 쿼리가 성공하려면 추가 옵션이 필요한 것으로 나타났다. 너무 $ 응답 및 $ graphObject의

$request = new FacebookRequest(
      $session, 
      'GET', 
      '/me/picture', 
      array (
       'redirect' => false, 
       'type' => 'large' 
      ) 
     ); 
+1

글쎄, 그래 ... 당신은 또한 이렇게 할 수 있습니다 : '/ me/picture? redirect = false & type = large'- 솔루션이 아마도 더 나을지라도. – luschn

+1

그림 끝 점이 실제로는 실제 이미지로 리디렉션됩니다 - redirect = false없이 – luschn

관련 문제