I have gotten the photo upload function to work with this code,
<?php
include_once 'facebook-php-sdk/src/facebook.php';
include_once 'config.php';//this file contains the secret key and app id etc...
$facebook = new Facebook(array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_SECRET_KEY,
'cookie' => true,
'domain' => 'your callback url goes here'
));
$session = $facebook->getSession();
if (!$session) {
$url = $facebook->getLoginUrl(array(
'canvas' => 1,
'fbconnect' => 0,
'req_perms'=>'user_photos,publish_stream,offline_access'//here I am requesting the required permissions, it should work with publish_stream alone, but I added the others just to be safe
));
echo 'You are not logged in, please <a href="' . $facebook->getLoginUrl() . '">Login</a> to access this application';
} else{
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
$token = $session['access_token'];//here I get the token from the $session array
$album_id = 'the id of the album you wish to upload to eg: 1122';
//upload your photo
$file= 'test.jpg';
$args = array(
'message' => 'Photo from application',
);
$args[basename($file)] = '@' . realpath($file);
$ch = curl_init();
$url = 'https://graph.facebook.com/'.$album_id.'/photos?access_token='.$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 id of the photo you just uploaded
print_r(json_decode($data,true));
} catch(FacebookApiException $e){
echo "Error:" . print_r($e, true);
}
}
?>
I hope this helps, a friend and I smashed our heads against a wall for quite some time to get this working!
Anyways, here is my question, how can I upload a image to a fan page? I am struggling to get this working, when I upload the image all I get is the photo id but no photo in the album.
So basically, when the user clicks the upload button on our application, I need it to upload the image they created to our fan page's album with them tagged on it.
Anyone know how I can accomplish this?
In early June 2019, the feature was further deprecated, with the majority of URLs for graph search queries no longer working. Facebook explained this by saying: "The vast majority of people on Facebook search using keywords, a factor which led us to pause some aspects of graph search and focus more on improving keyword ...
Follow the simple Get login url with
$data['url'] = $this->facebook->getLoginUrl(array('scope'=>'publish_stream,read_stream,user_likes,user_photos,manage_pages'));
this will let you post photo and add album in fanpage. Get access token for
$accounts = $this->facebook->api('/'.$PAGE_ID.'?fields=access_token', 'get', array('access_token' => $access_token));
$page_access_token = $accounts['access_token'];
Create album with other detail
$album_details = array(
'message'=> 'Test album',
'name'=> $today ,//should be unique each time,
'access_token'=>$page_access_token
);
$album_created = $this->facebook->api('/'.$PAGE_ID.'/albums', 'post', $album_details);
Upload photo to a particualar fanpage album
$photo = $this->facebook->api('/'.$album_id.'/photos', 'POST', array(
'source' => "@"."@".realpath(BASEPATH."../".$photopath),
'message' => 'new photo',
'access_token' => $page_access_token,
'no_story' => 0
)
);
//print_r( $album_created['id'] );
And change the path as you wish Happy coding
This code works aweesome in this site....why downvoted.?You can post photos to fanpage if you are owner of that page.I have a working copy of that application.
This seems to be a bug with the Graph API. See this http://forum.developers.facebook.com/viewtopic.php?id=59063 (can't post links, yet)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With