2012-02-07 129 views

回答

3

以下是使用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); 

,你还可以在Facebook的构造函数中指定的:

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

另一个选项

//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)); 
+0

感谢阿迪尔莫卧儿我曾经在Web服务这个图形API,但上传图片需要太多时间。 – 2012-03-22 13:29:28

+0

+1,谢谢你的回答。 – 2013-03-07 13:25:40

+0

增加你的upvote数量,以获得更多的声誉,所以一些体育精神。 – 2013-05-13 08:48:42