Использование cURL для получения альбома Facebook jSON с PHP
Я нашел скрипт в журнале Web Designer, который позволяет вам собирать данные альбома с фан-страницы Facebook и размещать их на своем сайте.
Скрипт использует PHP-функцию file_get_contents(), которая прекрасно работает на моем персональном сервере, но не разрешена на хостинге Network Solutions.
Просматривая их документацию, они рекомендовали вам использовать сеанс cURL для сбора данных. Я никогда раньше не использовал сеансы cURL, и для меня это загадка. Любая помощь будет оценена.
Код, который я "использовал", выглядел так:
<?php
$FBid = '239319006081415';
$FBpage = file_get_contents('https://graph.facebook.com/'.$FBid.'/albums');
$photoData = json_decode($FBpage);
$albumID = $photoData->data[0]->id;
$albumURL = "https://graph.facebook.com/".$albumID."/photos";
$rawAlbumData = file_get_contents("https://graph.facebook.com/".$albumID."/photos");
$photoData2 = json_decode($rawAlbumData);
$a = 0;
foreach($photoData2->data as $data) {
$photoArray[$a]["source"] = $data->source;
$photoArray[$a]["width"] = $data->width;
$photoArray[$a]["height"] = $data->height;
$a++;
}
?>
Код, который я пытаюсь использовать, теперь выглядит так:
<?php
$FBid = '239319006081415';
$FBUrl = "https://graph.facebook.com/".$FBid."/albums";
$ch = curl_init($FBUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$contents = curl_exec($ch);
curl_close($ch);
$photoData = json_decode($contents);
?>
Однако когда я пытаюсь отобразить содержимое $ photoData или манипулировать им, становится ясно, что оно пустое.
Какие-нибудь мысли?
3 ответа
Используйте jquery, чтобы получить Json. Этот совет взят из загрузчика FB, скрипт GreaseMonkey.
Попробуйте удалить curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); Я не совсем уверен, что это делает, но я не использую его, и мой код выглядит очень похоже. Я бы также использовал:
json_decode ($ содержание, правда); Это должно поместить результаты в массив вместо объекта. Мне больше повезло с этим подходом.
Поместите это в категорию работ для меня.
Попробуйте это может сработать
$ch = curl_init($FBUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$contents = curl_exec($ch);
$pageData = json_decode($contents);
//object to array
$objtoarr = get_object_vars($pageData);
curl_close($ch);