从Facebook API获取个人资料图片网址 - PHP SDK V.5

时间:2016-08-21 09:58:18

标签: php facebook facebook-graph-api facebook-php-sdk

我想获取个人资料的图片网址。 要获得名称,请执行以下操作:

$fb = new \Facebook\Facebook([
      'app_id' => '{app_id}',
      'app_secret' => '{app_secret}',
      'default_graph_version' => 'v2.5',
      'default_access_token' => '{access_token}', 
]);

$response = $fb->get('/me');

$name = $response->getGraphObject()->asArray();

$name = $name['name'];
echo $name;

使用相同的逻辑,我尝试使用以下内容获取个人资料图片网址:

$fb = new \Facebook\Facebook([
      'app_id' => '{app_id}',
      'app_secret' => '{app_secret}',
      'default_graph_version' => 'v2.5',
      'default_access_token' => '{access_token}', 
]);

$response = $fb->get('/me/picture');

$pic = $response->getGraphObject()->asArray();

$pic = $pic['url'];
echo $pic;

它不起作用。从图表浏览器我知道当我调用/ me /图片时我得到的是:

   {
       "data": {
           "is_silhouette": false,
           "url": "https://scontent.xx.fbcdn.net/ etc etc "
       }
   }

所以我确信我正在拨打正确的电话,但是当我想要获取网址时,我搞砸了。我的想法是去数据对象,但我无法获取url值。我也尝试过get字段,但没有运气:

   $pic = $response->getGraphObject()->asArray();
   $pic->getField('url');

删除 - > asArray()没有任何区别。 最后我用这种方式尝试了但又没有运气。

  $object = $response->getGraphObject();
  $pic = $object->asArray('data');
  $pic = $pic['url'];
  echo $pic;

我们将不胜感激任何帮助:)

1 个答案:

答案 0 :(得分:0)

所以基本上我发现有一个名为getGraphUser的函数。

       $response = $fb->get('/me?fields=picture');
       $user = $response->getGraphUser();
       $name = $user->getPicture();
       echo $name['url'];