1

我在 Web Designer 杂志中发现了一个脚本,它可以让您从 Facebook 粉丝页面收集专辑数据,并将其放在您的网站上。

该脚本使用 PHP 的 file_get_contents() 函数,该函数在我的个人服务器上运行良好,但在网络解决方案托管中不允许使用。

在查看他们的文档时,他们建议您使用 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 的内容时,很明显它是空的。

有什么想法吗?

4

3 回答 3

0

试试这个它可以工作

$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);
于 2012-03-30T05:21:18.317 回答
0

尝试删除 curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); 我不确定那是做什么的,但我没有使用它,而且我的代码看起来非常相似。我也会使用:

json_decode($contents,true); 这应该将结果放在数组而不是对象中。我对这种方法有更好的运气。

把它放在为我工作的类别中。

于 2011-09-26T16:38:08.377 回答
0

改用 jquery get Json 这个提示来自 FB Album downloader GreaseMonkey 脚本

于 2012-05-05T12:52:11.393 回答