Facebook – Connect: Image Upload mit PHP SDK

Der Image Upload mit der graph-api von Facebook ist ziemlich einfach und gut zu benutzen:

Nachfolgend gibts zwei Codeschnipsel mit dem man A. Alben anlegt und B. Photos hochlädt. Dazu habe ich mir die Graph-PHP-Api ein bischen erweitert.

private function createAlbum(){
 $params = array();
 if (!isset($params['access_token'])) {
 $session = $this->getSession();
 // either user session signed, or app signed
 if ($session) {
 $params['access_token'] = $session['access_token'];
 } else {
 // TODO (naitik) sync with abanker
 //$params['access_token'] = $this->getAppId() .'|'. $this->getApiSecret();
 }
 }
 $params['name'] = "test";
 $params['message'] = "my new Test-Album";
 $url ="https://graph.facebook.com/me/albums";
 return $this->makeRequest($url, $params);
 }

Bildupload zu Facebook

private function uploadImageData($albumId, $image){

 $params = array();
 if (!isset($params['access_token'])) {
 $session = $this->getSession();
 // either user session signed, or app signed
 if ($session) {
 $params['access_token'] = $session['access_token'];
 } else {
 // TODO (naitik) sync with abanker
 //$params['access_token'] = $this->getAppId() .'|'. $this->getApiSecret();
 }
 }

 $file= $image;
 $args = array(
 'message' => 'Photo from application',
 );
 $args[basename($file)] = '@' . realpath($file);
 $ch = curl_init();
 $url ="https://graph.facebook.com/".$albumId."/photos?access_token=".$params['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));
 }

Ich hoffe Ihr könnt Damit was anfangen. Sicherlich gibts später noch mehr dazu.