1

Facebookのファンページからアルバムデータを収集してサイトに配置できるスクリプトをWebDesignerマガジンで見つけました。

このスクリプトは、PHPのfile_get_contents()関数を利用します。これは、私の個人サーバーではうまく機能しますが、NetworkSolutionsホスティングでは許可されていません。

彼らのドキュメントを調べる際に、彼らはデータを収集するために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

代わりにjquerygetJsonを使用してくださいこのヒントはFBアルバムダウンローダーGreaseMonkeyスクリプトからのものです

于 2012-05-05T12:52:11.393 に答える
0

curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); を削除してみてください。それが何をするのか正確にはわかりませんが、私はそれを使用しておらず、それ以外の点では私のコードは非常に似ています。私も使用します:

json_decode($contents,true); これにより、結果がオブジェクトではなく配列に格納されます。私はこのアプローチで運が良かったです。

私の作品のカテゴリに入れてください。

于 2011-09-26T16:38:08.377 に答える
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 に答える