2

我的一个客户希望能够通过将图像添加到她的 Facebook 帐户上的相册来更新她网站的图像库。这可能使用 JSON 吗?她选择展示的专辑需要公开吗?感谢您对此的任何帮助!

4

2 回答 2

5

这绝对可以通过使用 graph 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"
              }
}

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

于 2010-09-17T11:01:31.007 回答
1

https://graph.facebook.com/USER_ID/albums/ 将为您提供 25 个最新专辑,您必须在 url 中设置“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”获取墙上的照片...

于 2012-05-19T13:28:04.580 回答