2012-05-26 120 views
1

创建一个描述相册的相册。Iam试图将图片上传到相册。有什么方法可以为相册创建说明吗?有没有什么办法可以用php的

我正在使用以下代码。

<?php 
    require_once 'fbpic/library/facebook.php'; 

    $app_id = "xxxx"; 
    $app_secret = "xxxxx"; 
    $facebook = new Facebook(array(
    'appId' => $app_id, 
    'secret' => $app_secret, 
    'cookie' => true 
    )); 
    $fbcheck= $facebook->getUser(); 

    if(is_null($fbcheck) or !$fbcheck or $fbcheck==0) 
    { 
    header("Location:{$facebook->getLoginUrl(array('scope' => 'user_status,publish_stream,user_photos,photo_upload'))}"); 

    } 



     $facebook->setFileUploadSupport("http://" . $_SERVER['SERVER_NAME']); 
     // add a status message 
     $photo = $facebook->api('/me/photos', 'POST', 
      array(
       'source' => '@' .realpath("ContactUs.jpg") , 
       'message' => 'It is a programming test' 
      ) 
     ); 

?>

+1

是的,这是可能的:http://developers.facebook.com/docs/reference/api/user/#albums – zerkms

回答

2

当您上传从应用程序中的照片到Facebook和没有指定什么专辑中(/me/photos),Facebook将创建一个自动唱片为您的应用程序和所有连续照片放在从您的应用程序上传将转到该自动生成的专辑。

如果你想让你的应用程序的相册有一个描述,你的应用程序应该手动创建一个并指定一个描述。你可以用下面的代码做到这一点 -

//Create an album 
$album_details = array(
     'message'=> 'Album desc', 
     'name'=> 'Album name' 
); 
$album_data = $facebook->api('/me/albums', 'POST', $album_details); 

如果调用成功,$album_data响应将持有新创建album_id上传照片时,您可以使用。您只需将它们上传到特定相册ID -

$facebook->api('/ALBUM_ID/','POST', array(
    'source' => '@' .realpath("ContactUs.jpg") , 
    'message' => 'It is a programming test' 
) 
); 

一个很好的想法是将相关album_id存储在数据库中的其它用户数据一起。请记住,每次进行上传时,都要测试该专辑的存在,因为用户可能会在应用程序之外删除该专辑。

+0

感谢您的宝贵意见。现在它运作良好。但是我很想将图片上传到相册,如果它已经存在,或者想要创建相册。那么,我该如何检查相册是否存在以及如何获取其ID?在此先感谢.. – Sunil

+0

就像我在最后一段所说的那样,您应该在数据库中存储每个用户的相册ID。如果你的用户在你的数据库中没有album_id,那么你就知道你需要创建它。如果用户确实有相册ID,则可以在查询'$ facebook-> api('/ ALBUM_ID')'时查看它是否返回错误。 – Lix

+0

是否有任何其他方式通过名称获取特定专辑的详细信息或获取所有专辑的详细信息? – Sunil

相关问题