Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在检索Facebook个人资料图片的URL_Php_Facebook_Facebook Graph Api - Fatal编程技术网

Php 正在检索Facebook个人资料图片的URL

Php 正在检索Facebook个人资料图片的URL,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我有以下输出正确的代码: $request = new FacebookRequest( $session, 'GET', '/me?fields=id,first_name,email,gender,birthday,picture.url' ); $response = $request->execute(); 输出: Facebook\GraphObject Object ( [backingData:protected] => Array ( [id] => 1412

我有以下输出正确的代码:

$request = new FacebookRequest( $session, 'GET', '/me?fields=id,first_name,email,gender,birthday,picture.url' );
$response = $request->execute();
输出:

Facebook\GraphObject Object ( [backingData:protected] => Array ( [id] => 1412361249046879 [first_name] => Do [email] => xxxx@xxxx.com [gender] => male [birthday] => 06/30/1984 [picture] => stdClass Object ( [data] => stdClass Object ( [url] => https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xpa1/t1.0-1/p50x50/10406555_1412406989042185_8978818317524743009_t.jpg ) ) ) )
然后在我的html中设置要稍后调用的变量:

  $uid = $response->getGraphObject()->getProperty('id');
  $name = $response->getGraphObject()->getProperty('first_name');
  $email = $response->getGraphObject()->getProperty('email');
  **$pic = $response->getGraphObject()->getProperty('picture.data.url');**
  $sex = $response->getGraphObject()->getProperty('gender');
  $bday = $response->getGraphObject()->getProperty('birthday');

问题是$pic变量不起作用。我不明白如何调用GraphObject树(即图片->数据->url)下一级的变量。

为什么不这样调用它:

$pic = $response->getGraphObject()->getProperty('picture')->data->url;
或者将FQL与FB SDK一起使用

$config = array(
  'appId'  => APP_ID,
  'secret' => API_SECRET,
  'cookie' => true,

);
$facebook = new Facebook($config);
$params = array(
    'method' => 'fql.query',
    'query' => "SELECT uid,email, pic, first_name, last_name, birthday, sex FROM user WHERE uid = ".$uid.""
    );

$result = $result = $facebook->api($params);
这是完整的官方文件。 我希望这有帮助

警告:但FQL它将从新版本的FB API中删除

$request = new FacebookRequest( $session, 'GET', '/me?fields=id,first_name,email,gender,birthday,picture.url' );
$response = $request->execute();      
$array = $response->getResponse();
$pic = $array->picture->data->url;

以下是最终解决问题的方法。我不得不停止使用getGraphObject()函数,而只使用标准的getResponse(),这样我就可以把它当作常规数组来处理。希望这能帮助别人。

或者像这样尝试:$picObj=$response->getGraphObject()->getProperty('picture')$pic=$picObj->data->url;我想避免FQL,因为它的预期寿命很短。我试过上面的方法,但也没用。我整天都在浏览FB PHP SDK文档,没有找到任何东西。FQL将在Graph API的v2.1版本之前出现,这意味着2016年4月30日图片不是一个字段。这是一种优势。试着请求/me/pictureThank你,这在6年后帮助了我:)