使用Facebook的Graph API将照片上传到相册

时间:2010-04-27 03:55:32

标签: php facebook

我正在尝试熟悉Facebook的新图谱API,到目前为止,我可以很容易地获取和写入一些数据。

我正在努力寻找合适的文档是将图像上传到相册。

根据http://developers.facebook.com/docs/api#publishing,您需要提供消息参数。但我不太确定如何构建它。

我读过的旧资源是:

如果有人有更多信息或可以帮我解决使用Facebook Graph API将照片上传到相册的问题,请回复!

3 个答案:

答案 0 :(得分:48)

以下是使用PHP Facebook Graph API上传照片的各种方法。这些示例假设您已实例化$ facebook对象并具有有效会话。

1 - 上传到当前用户的默认应用程序相册

此示例将照片上传到当前用户的默认应用程序相册。如果相册尚不存在,则会创建。

$facebook->setFileUploadSupport(true);
$args = array('message' => 'Photo Caption');
$args['image'] = '@' . realpath($FILE_PATH);

$data = $facebook->api('/me/photos', 'post', $args);
print_r($data);

2 - 上传到目标专辑

此示例会将照片上传到特定相册。

$facebook->setFileUploadSupport(true);
$args = array('message' => 'Photo Caption');
$args['image'] = '@' . realpath($FILE_PATH);

$data = $facebook->api('/'. $ALBUM_ID . '/photos', 'post', $args);
print_r($data);

答案 1 :(得分:22)

以下代码对我有用:

//upload photo
$file= '/path/filename.jpg';
$args = array(
   'message' => 'Photo from application',
);
$args[basename($file)] = '@' . realpath($file);
$ch = curl_init();
$url = 'http://graph.facebook.com/'.$album_id.'/photos?access_token='.$access_token;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$data = curl_exec($ch);
//returns the photo id
print_r(json_decode($data,true));

文档链接:http://developers.facebook.com/docs/reference/api/photo

答案 2 :(得分:7)

你必须做一些事情来让图api与php一起工作。这段代码有效。注意fileUpload =>真...

我也无法使用javascript工作,所以我正在为此做ajax:

require './facebook.php';

$facebook = new Facebook(array(  
  'appId'  => 'ID',  
  'secret' => 'SECRET',  
  'fileUpload' => true,  
  'cookie' => true // enable optional cookie support  
));  


$facebook->setFileUploadSupport(true);  

# File is relative to the PHP doc  
$file = "@".realpath("../../_images/stuff/greatness.jpg");  

$args = array(  
    'message' => 'Photo Caption',  
    "access_token" => "urtoken",  
    "image" => $file  
);  


$data = $facebook->api('/ALBUMID_GOES_HERE/photos', 'post', $args);
if ($data) print_r("success");

$facebook = new Facebook(array( 'appId' => 'ID', 'secret' => 'SECRET', 'fileUpload' => true, 'cookie' => true // enable optional cookie support )); $facebook->setFileUploadSupport(true); # File is relative to the PHP doc $file = "@".realpath("../../_images/stuff/greatness.jpg"); $args = array( 'message' => 'Photo Caption', "access_token" => "urtoken", "image" => $file ); $data = $facebook->api('/ALBUMID_GOES_HERE/photos', 'post', $args); if ($data) print_r("success");