0

我做了一个项目,在这部分项目中,我想保存从 graph.facebook.com 获取的数据,现在我是我从 facebook graph api 获得的项目的示例输出。:

Facebook\GraphObject Object
(
    [backingData:protected] => Array
        (
            [data] => Array
                (
                    [0] => stdClass Object
                        (
                            [message] => Automated XML Site Map Generator
http://pastebin.com/xjJe38dp
                            [id] => 103114753133019_371405176303974
                            [updated_time] => 2013-04-26T05:36:35+0000
                        )

                    [1] => stdClass Object
                        (
                            [message] => Simple but powerful DB class
http://pastebin.com/1qgxUrwX
                            [id] => 103114753133019_371404696304022
                            [updated_time] => 2013-04-26T05:34:23+0000
                        )

                    [2] => stdClass Object
                        (
                            [message] => Convert Existing DB to Unicode
http://pastebin.com/pHu08cPs
                            [id] => 103114753133019_371404609637364
                            [updated_time] => 2013-04-26T05:33:50+0000
                        )

                )

            [paging] => stdClass Object
                (
                    [previous] => https://graph.facebook.com/v2.2/103114753133019/feed?fields=message&since=1366954595&access_token=425591634259397|AQumfoxQyU3wAyt3sM37sYM9sp8&limit=25&__paging_token=enc_AexpCrJr7NTOG02uEaXs6pqjd11UjEohZJLjXZrWeYLOsE9hPX7WQTLemXIGMpzdFXEDdDUQj3qdwOqEbmlAfX4TREbZ-3GAfkKiUZ44kHGYLw&__previous=1
                    [next] => https://graph.facebook.com/v2.2/103114753133019/feed?fields=message&access_token=425591634259397|AQumfoxQyU3wAyt3sM37sYM9sp8&limit=25&until=1366954430&__paging_token=enc_AeyPm9mOsK3T9J0JNkIyQQqxfS7hLDe5GCs-IRLQWPOOzma8v9Rzvw8awxxE0GMQhx-rfs99X7TpUGw5f7HNgPnTKh11WbGC5Yj7GyW7s2VqoA
                )

        )

)

如您所见,我通过运行打印这些代码:

$request = new FacebookRequest( $session, 'GET', '/a page id/feed'.$sfield );

$response = $request->execute();
// get response
$graphObject = $response->getGraphObject();
// print data
echo '<pre>' . print_r( $graphObject, 1 ) . '</pre>';

所以现在我想将消息保存到文件或数据库中,当我想使用$graphObject作为数组时,它给了我一个错误:

Fatal error: Cannot use object of type Facebook\GraphObject as array in /home/micengco/public_html/parser/facebook.php on line 34

那我怎么能做到这一点?

4

2 回答 2

3

在下面查看:(需要添加“->asArray();”才能将输出作为普通数组)

$request = new FacebookRequest( $session, 'GET', '/a page id/feed'.$sfield );

$response = $request->execute();
// get response
$graphObject = $response->getGraphObject()->asArray();
// print data
echo '<pre>' . print_r( $graphObject, 1 ) . '</pre>';

它不会在数组中给出“backingData:protected”。

于 2014-12-27T07:39:40.513 回答
0

对象的导航方式与数组不同。我认为你需要做这样的事情:

$graphObject = $response->getGraphObject();
$backingData = $graphObject->backingData;
$data = $backingData[data][0];

在这种情况下,您需要仔细阅读和理解结构。在这样的数据结构中会有关联的和数字索引的数组。我在上面做的是首先获取对象的“backingData”属性。现在在这个属性下,我们有一个带有键“数据”的关联数组。在此之下,有一个数字索引数组,在您的示例中只有一个元素。如果有多个元素,则必须运行一个循环。

于 2014-12-13T18:05:16.440 回答