使用图形api在投资组合网站上显示Facebook相册中的图像

时间:2010-09-17 04:35:38

标签: json facebook image-gallery facebook-graph-api

我的客户希望能够通过在她的脸书帐户中将图像添加到相册来更新其网站的图片库。这可能使用JSON吗?她选择展示的专辑是否需要公开?感谢您的帮助!

2 个答案:

答案 0 :(得分:5)

使用图形api:

绝对可以实现

获取所有相册的ID - 选择您想要的相册:

https://graph.facebook.com/me/albums/

访问相册:

https://graph.facebook.com/ALBUM_ID/photos

您需要user_photos权限,并且相册需要公开。

这将返回以下JSON表单中所有照片的列表:

{
          "id": "104988432890979",
                 "from": {
                    "name": "Patrick Snape",
                    "id": "100001394674670"
                 },
                 "picture": "http://photos-f.ak.fbcdn.net/hphotos-ak-snc4/hs272.snc4/39934_104988432890979_100001394674670_46790_6171664_s.jpg",
                 "source": "http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs272.snc4/39934_104988432890979_100001394674670_46790_6171664_n.jpg",
                 "height": 540,
                 "width": 720,
                 "link": "http://www.facebook.com/photo.php?pid=46790&id=100001394674670",
                 "icon": "http://static.ak.fbcdn.net/rsrc.php/z2E5Y/hash/8as8iqdm.gif",
                 "created_time": "2010-08-11T10:32:45+0000",
                 "updated_time": "2010-08-11T10:32:47+0000"
              }
}

然后,您可以使用照片的来源获取完整尺寸的图像

答案 1 :(得分:1)

https://graph.facebook.com/USER_ID/albums/ 会得到25张最近的专辑,你必须在网址中设置'limit = 0' 像

https://graph.facebook.com/USER_ID/albums/?limit=0 这会让你所有的专辑...... 并确保您的专辑'Wall Photos'设置为公开,否则您将需要'user_photos'权限。

然后你需要获得标题为'Wall Photos'的专辑的专辑ID 并且您可以使用该专辑ID

检索照片
$wall_album_id='';
$url = "http://graph.facebook.com/me/albums?fields=id,name&limit=0";
$obj = json_decode(file_get_contents($url));
foreach($obj->data as $item) {
    if ($item->name == 'Wall Photos'){
            $wall_album_id=$item->id;
            break;
    }
}

然后你可以使用专辑'$ wall_album_id'获取墙照片......