如果存在,则将图像上传到相册,然后创建新专辑 - Facebook

时间:2011-06-07 04:08:39

标签: facebook facebook-graph-api

经过一些努力,我有一些代码可以将图像上传到Facebook,但现在问题是它总是创建一个新专辑。
我想修改代码,以便它只创建一个专辑,如果还没有一个具有该名称的专辑;否则,只需将图像上传到现有相册即可。

我上传图片的代码:Upload photos to Facebook Album from an app

2 个答案:

答案 0 :(得分:2)

API允许您将图片上传到应用的现有相册。只需发布到https://graph.facebook.com/USER_ID/photos - 照片就会发布到为您的应用创建的相册中。如果您的应用尚不存在,我们会自动为您创建相册。以这种方式上传的所有照片将被添加到同一张专辑中。

如果您要将图片添加到特定相册,则必须发布到https://graph.facebook.com/ALBUM_ID/photos - 照片将发布到特定的现有相册,由ALBUM_ID表示。

详细的操作指南在此处:https://developers.facebook.com/blog/post/498

答案 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. '"'
);