Facebook Graph API - 如何从相册中检索不同尺寸的照片?

时间:2011-07-08 19:02:54

标签: facebook facebook-graph-api

好的,首先让我告诉你我在获取用户的相册时没有问题,并在输出中循环显示我想要的所有尺寸的照片。

但是,如果我想调用像这样的照片:

<img src="https://graph.facebook.com/<?=$this->session->page->photo_id?>/picture?access_token=<?=$this->session->member->facebook_access_token?>" />

我无法弄清楚如何告诉它我希望它显示的大小。

在这个来自Facebook的示例代码中,您将看到乳清检索相册中阵列中的每张照片都会返回此示例数组中的不同大小。我可以从中保存缩略图网址,但我不想存储它,只需在需要时检索。

{
   "id": "10150146071831729",
   "from": {
      "name": "Facebook",
      "category": "Product/service",
      "id": "20531316728"
   },
   "picture": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_s.jpg",
   "source": "http://a7.sphotos.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_n.jpg",
   "height": 483,
   "width": 720,
   "images": [
      {
         "height": 483,
         "width": 720,
         "source": "http://a7.sphotos.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_n.jpg"
      },
      {
         "height": 120,
         "width": 180,
         "source": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_a.jpg"
      },
      {
         "height": 87,
         "width": 130,
         "source": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_s.jpg"
      },
      {
         "height": 50,
         "width": 75,
         "source": "http://photos-g.ak.fbcdn.net/hphotos-ak-ash1/168119_10150146071831729_20531316728_7844072_5116892_t.jpg"
      }
   ],
   ....... continued...
}

必须有一种方法来检索这些不同的尺寸。

感谢。

3 个答案:

答案 0 :(得分:51)

Facebook为图片字段提供类型选项,例如,您可以指定以下内容:

<img src="https://graph.facebook.com/xxx/picture?access_token=yyy&type=normal />

其中type参数可以是 square small normal large 之一,用于个人资料图片专辑图片的缩略图普通专辑

来源:http://developers.facebook.com/docs/reference/api/user/(在“连接”部分下)

修改:为相册图片添加了不同的选项

答案 1 :(得分:7)

我想在Graph API中获取更大的图像尺寸时,我会分享一些技巧。 Facebook作为一个小常规,图像URL不是很明显。例如,请使用以下URL:

https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-prn2/t1/1185356_10201176263222205_1153673992_s.jpg

注意最后的_s.jpg?这决定了图像的大小。您可以将其更改为_o.jpg以获取“原始”完整尺寸版本。换句话说,请将图片网址更新为:

https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-prn2/t1/1185356_10201176263222205_1153673992_o.jpg

每张Facebook图片都有_o.jpg版本。最糟糕的情况是,您获得与缩略图相同大小的内容。如果是这样的话,那你就没有比以前更好的了。

答案 2 :(得分:0)

这里src_big和src是不同大小的图片网址源

    function get_photos_by_album_id($album_id){

 if($album_id)
     $fql            =   'SELECT pid,src_big,owner,link,position,created,caption,src      FROM photo WHERE aid="'.$album_id.'" ORDER BY created DESC LIMIT 0,6';

            $param  =   array(
            'method'    => 'fql.query',
            'query'     => $fql,
            'callback'  => ''
        );
        $fqlResult   =   $this->facebook->api($param);
    return $fqlResult;

 }