Как скачать аватар пользователя из graph.facebook?

Добрый день,

на сайте организована регистрация пользователей через социальные сети, в том числе facebook.

Для загрузки аватара пользователя facebook на сайт использую URL:
graph.facebook.com/100001039666189/picture?width=5...

из объекта data получаю url cdn содержащую ссылку на аватар
https://scontent.xx.fbcdn.net/v/t1.0-1/p720x720/11...

любая попытка скачать файл через curl или file_get_contents не завершается успехом. Я так понимаю ответ от сервера 403

Пример одной из попыток скачать изображение:
$ID = '100001039666189';

$ch = curl_init("http://graph.facebook.com/'.$ID.'/picture?width=500&height=500&redirect=false");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$content 	= curl_exec($ch);
$data 		= json_decode($content, true);
curl_close($ch);

$get = file_get_contents($data['data']['url']);
$f = fopen('fb_'.$ID.'.jpg', 'w+');
fputs($f, $get);
fclose($f);


На деле происходит формирование массива изображения по url методом CFile::MakeFileArray, но возвращает [type] => unknown

В чем может быть проблема?

Спасибо.
  • Вопрос задан
  • 1030 просмотров
Пригласить эксперта
Ответы на вопрос 1
@IceJOKER
Web/Android developer
Какая-то нелепость, вместо того, чтобы сразу получить картинку, сначала получаете json со ссылкой, а потом скачиваете одной функцией, потом другой записываете в файл О_О

$ID = '100001039666189';
$url= "http://graph.facebook.com/{$ID}/picture?width=500&height=500";
$data = file_get_contents($url);
file_put_contents('filename.filetpe', $data);

Так не проще?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы