0

さて、StackOverflowの別の投稿で見つけたいくつかの指示に従って、ファンページフィードを取得してRSS2フィードに変換するスクリプトを作成しました。ただし、スクリプトにはいくつかの変更が必要であり、Imは世界で最高のプログラマーではないため、少し助けが必要です。

このエラーが発生しました:

警告:48行目のfeed.phpのforeach()に無効な引数が指定されています

無効な引数が何であるかわかりません。

<?

// error reporting
echo '<pre>';
ini_set('display_errors', 'on');
error_reporting(E_ALL);

// require your facebook php sdk
require('./facebook/facebook.php'); 

// include the feed generator feedwriter file                   
include("./feed/FeedWriter.php");                       


// config secret key and appid
$config = array(
'appId' =>  '',                             
'secret'=>  ''      
);

// Initialize
$facebook = new Facebook($config);

// Set Apps Permissions Request
$permission_scope = "";

   // get users access token
$access_token = $facebook->getAccessToken();

    // get page post
    $feed_url = 'https://www.facebook.com/Ritualdubstep/feed?access_token='.$access_token;
    $feed_json = file_get_contents($feed_url);
    $feed_data = json_decode($feed_json);

// create the feedwriter object 
$feed = new FeedWriter(RSS2);

$feed->setTitle('Ritual Dubstep'); // set your feed title
$feed->setLink('https://www.facebook.com/Ritualdubstep'); // set the url to the feed page you're generating

$feed->setChannelElement('updated', date(DATE_RSS , time()));
$feed->setChannelElement('author', array('name'=>'Ritual Dubstep SF')); // set the author name

// iterate through the facebook response to add items to the feed
foreach($feed_data['data'] as $entry){
    if(isset($entry["message"])){
        $item = $feed->createNewItem();
        $item->setTitle($entry["from"]["name"]);
        $item->setDate($entry["updated_time"]);
        $item->setDescription($entry["message"]);
        if(isset($entry["link"]))
            $item->setLink(htmlentities($entry["link"]));

        $feed->addItem($item);
        }
}

// generate feed
$feed->genarateFeed();
?>
4

1 に答える 1

0

foreach通常、呼び出しの最初の引数(この場合$feed_data['data']は ) が有効な配列ではないことを意味します。

ループに入る前に、$feed_data['data']が存在し ( isset($feed_data['data']))、それが配列 ( ) であることを確認してください。is_array($feed_data['data'])foreach

そして、シェイプシフターがコメントで述べたように、ループをvar_dump($feed_data['data'])開始する直前までにトラブルシューティングを開始して、何が生成されているかを確認することをお勧めします。foreach

于 2012-12-04T01:43:06.553 に答える