问题 从Facebook graphObject读取数据


用户已接受我的Facebook应用程序。我现在可以访问他们的一些数据。它作为一个返回 graphObject,其中包含以下内容:

Facebook \ GraphObject对象([backingData:protected] =>数组([id] => 11111 [first_name] => Bob [性别] =>男[last_name] =>构建器[link] => https://www.facebook.com/app_scoped_user_id/11111/ [locale] => de_DE [name] => Bob Builder [timezone] => 2 [updated_time] => 2014-02-14T14:35:54 + 0000 [已验证] => 1))

不幸的是我无法获取此对象内的数据。像数组一样读取它会引发错误:

$fbid = $graphObject['id']; // Cannot use object of type Facebook\GraphObject as array
$fbid = $graphObject->id; //  Undefined property: Facebook\GraphObject::$id

我怎样才能获得身份证?


1192
2018-05-08 12:12


起源



答案:


如果已使用以下两种方法之一将响应作为GraphObject转换为:

// Get the response typed as a GraphLocation
$loc = $response->getGraphObject(GraphLocation::className());

// or convert the base object previously accessed
// $loc = $object->cast(GraphLocation::className());

你可以使用 Get 图形对象的属性,取决于您将其作为对象的类型...这是一个示例 GraphUser 目的:

echo $user->getName();

或者,如果您知道属性的名称(如基础数据中所示),则可以使用 getProperty()

echo $object->getProperty('name');

因此,在您的示例中,您可以使用以下内容来获取 id 属性:

echo $user->getProperty('id');

这里有更多示例和文档


13
2018-05-08 12:35



$fbid = $graphObject->getProperty('id'); 作品, $fbid = $graphObject->getId(); 不,这是GraphUser实例。
$user->getId(); 确实有效。像这样定义和验证您的会话 $session = new FacebookSession($accessToken); $session->validate(); - Robot Boy


答案:


如果已使用以下两种方法之一将响应作为GraphObject转换为:

// Get the response typed as a GraphLocation
$loc = $response->getGraphObject(GraphLocation::className());

// or convert the base object previously accessed
// $loc = $object->cast(GraphLocation::className());

你可以使用 Get 图形对象的属性,取决于您将其作为对象的类型...这是一个示例 GraphUser 目的:

echo $user->getName();

或者,如果您知道属性的名称(如基础数据中所示),则可以使用 getProperty()

echo $object->getProperty('name');

因此,在您的示例中,您可以使用以下内容来获取 id 属性:

echo $user->getProperty('id');

这里有更多示例和文档


13
2018-05-08 12:35



$fbid = $graphObject->getProperty('id'); 作品, $fbid = $graphObject->getId(); 不,这是GraphUser实例。
$user->getId(); 确实有效。像这样定义和验证您的会话 $session = new FacebookSession($accessToken); $session->validate(); - Robot Boy


在新版Graph API中 getProperty 不起作用。 对于Facebook的新版Graph API v2.5读取读取数据如下:

$fb = new \Facebook\Facebook([
        'app_id' => 'APPIDHERE',
        'app_secret' => 'SECRET HERE',
        'default_graph_version' => 'v2.5',
    ]);
 $asscee_t ="ACCESS TOKEN HERE";
    $response = $fb->get('/me/friends', $asscee_t);
        $get_data = $response->getDecodedBody(); // for Array resonse
        //$get_data = $response->getDecodedBody(); // For Json format result only
        echo $get_data['summary']['total_count']; die; // Get total number of Friends

2
2018-03-04 07:29





请注意,从API版本> = 5.0.0 getProperty() 已重命名为 getField()。它将从> = v6中删除。所以

代替

$user->getProperty('name')

使用

$user->getField('name')

1
2017-07-10 06:18