使用PHP在Facebook上传图像或照片

时间:2012-02-07 12:54:39

标签: php facebook facebook-graph-api

如何在不使用PHP登录的情况下使用Outh_keyaccess token在Facebook Wall上传图片或照片?

请帮助我&非常感谢。

1 个答案:

答案 0 :(得分: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));