Использование cURL для получения альбома Facebook jSON с PHP - PullRequest
1 голос
/ 26 сентября 2011

Я нашел скрипт в журнале 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 ]

0 голосов
/ 30 марта 2012

Попробуйте это может работать

$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);
0 голосов
/ 05 мая 2012

Используйте вместо jquery get Json Этот совет взят из загрузчика FB, скрипт GreaseMonkey

0 голосов
/ 26 сентября 2011

Попробуйте удалить curl_setopt ($ ch, CURLOPT_BINARYTRANSFER, 1);Я не совсем уверен, что это делает, но я не использую его, и мой код выглядит очень похоже.Я бы также использовал:

json_decode ($ contents, true);Это должно поместить результаты в массив вместо объекта.Мне больше повезло с этим подходом.

Включите его в категорию работ для меня.

...