2015-04-14 5 views
0

У меня есть сайт, на котором люди могут загружать фотографии для оценки/любимого и т. Д. Я разрабатываю функцию, где, если они не хотят загружать фотографии, они могут импортировать их из аккаунта Facebook.Graph API Получить все фотографии

Я могу войти в систему/выйти из Facebook с помощью PHP Graph API, но я не уверен, что мне нужно получить фотографии зарегистрированных пользователей. Я установил URL-адрес для входа в разрешения user_photos.

У меня была функция, подобная этой, несколько лет назад, где я бы использовал FQL для запроса изображений, но теперь я использую новый API-интерфейс Facebook v4.

Любая помощь будет оценена по достоинству.

FacebookSession::setDefaultApplication('ID', 'SECRET'); 
$helper = new  FacebookRedirectLoginHelper('URL'); 
$permissions = array(
'user_photos' 
); 
try { 
if (isset($_SESSION['access_token'])) { 
    // Check if an access token has already been set. 
    $session = new FacebookSession($_SESSION['access_token']); 
} else { 
    // Get access token from the code parameter in the URL. 
    $session = $helper->getSessionFromRedirect(); 
} 
} catch(FacebookRequestException $ex) { 

// When Facebook returns an error. 
print_r($ex); 
} catch(\Exception $ex) { 

// When validation fails or other local issues. 
print_r($ex); 
} 
if (isset($session)) { 

// Retrieve & store the access token in a session. 
$_SESSION['access_token'] = $session->getToken(); 
// Logged in 
echo 'Successfully logged in!'; 
} else { 

// Generate the login URL for Facebook authentication. 
$loginUrl = $helper->getLoginUrl($permissions); 
echo '<a href="' . $loginUrl . '">Login</a>'; 
} 

ответ

0

После пользователь сделал свой логин, вы можете получить фотографии, как так:

FacebookSession::setDefaultApplication($APP_ID, $APP_SECRET); 

$session = new FacebookSession($access_token); 

$response = (new FacebookRequest($session, 'GET', '/me/photos?fields=source&limit=100'))->execute(); 
$object = $response->getGraphObject(); 
$arr = self::convertToAssoc($object); 

положить в пределе паров вашего значения.

вот как вы преобразовать facebook-объект:

public static function convertToAssoc($graphObject){ 
     $arr = $graphObject->asArray(); 
     if (!array_key_exists('data', $arr)){ 
      $arr['data'] = ''; 
     } 
     $arr_data = $arr['data']; 

     $data = []; 
     foreach($arr_data as $item){ 
      $data[] = get_object_vars($item); 
     } 

     return $data;  
    } 
Смежные вопросы