经过一些努力,我有一些代码可以将图像上传到Facebook,但现在问题是它总是创建一个新专辑。
我想修改代码,以便它只创建一个专辑,如果还没有一个具有该名称的专辑;否则,只需将图像上传到现有相册即可。
答案 0 :(得分:2)
API允许您将图片上传到应用的现有相册。只需发布到https://graph.facebook.com/USER_ID/photos - 照片就会发布到为您的应用创建的相册中。如果您的应用尚不存在,我们会自动为您创建相册。以这种方式上传的所有照片将被添加到同一张专辑中。
如果您要将图片添加到特定相册,则必须发布到https://graph.facebook.com/ALBUM_ID/photos - 照片将发布到特定的现有相册,由ALBUM_ID表示。
答案 1 :(得分:0)
首先,您要检查您正在创建的相册是否存在,否则Facebook将继续生成具有相同名称的相同相册。
$album = $facebook->api($param);
if (!$album) {
$album_details = array(
'message'=> 'Your album description goes here',
'name'=> $albumName
);
$create_album = $facebook->api('/me/albums', 'post', $album_details);
$album_uid = $create_album['id'];
} else {
$album_uid = $album[0]['object_id'];
}
获得相册ID后,您可以上传照片:
$photo_details = array(
'message'=> 'Photo Description Goes Here',
'image'=> '@' . realpath($theUploadFile)
);
$upload_photo = $facebook->api('/'.$album_uid.'/photos', 'post', $photo_details);
我写了一篇很好的教程,其中包含了这个功能。我的照片上传功能内置了多项选项,可让您同时上传照片和视频。您可以在此处查看整个教程并下载该软件包:http://www.epixseo.com/index.php/facebook-php-3-3-1-and-javascript-sdk-graph-api-tutorial/
<强>更新强>
$ param变量包含方法,在本例中是一个fql查询,以及实际的fql查询...在这种情况下,相册查询可能是这样的:
$param = array(
'method' => 'fql.query',
'query' => 'SELECT object_id FROM album WHERE owner="'.$user.'" AND name="'.$albumName. '"'
);