2010-04-27 27 views
43

Estoy tratando de familiarizarme con la nueva Graph API de Facebook y hasta ahora puedo buscar y escribir algunos datos con bastante facilidad.Subir foto a álbum con Graph API de Facebook

Algo con lo que estoy luchando para encontrar documentación decente es subir imágenes a un álbum.

Según http://developers.facebook.com/docs/api#publishing, debe proporcionar el mensaje con el argumento. Pero no estoy muy seguro de cómo construirlo.

antigua recursos que he leído son:

Si alguien tiene más información o me podría ayudar a abordo subir fotos a un álbum usando Facebook Graph API por favor responde!

Respuesta

48

Estas son algunas diversas formas de subir fotos utilizando el API de PHP Facebook Graph. Los ejemplos asumen que ha creado una instancia del objeto $ facebook y tiene una sesión válida.

1 - Cargar para aplicaciones predeterminados Álbum del usuario actual

En este ejemplo se va a subir la foto de su álbum de aplicación por defecto del usuario actual. Si el álbum aún no existe, se creará.

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

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

2 - Sube a Target álbum

En este ejemplo se va a subir la foto a un álbum específico.

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

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

¡Esto funcionó para mí! ¡Y el código es más corto y más dulce! – nishantcm

+2

No olvides agregar: $ facebook-> setFileUploadSupport (verdadero); – AbeEstrada

+1

@Abe Sí, eso es correcto, también puede especificar esto en el constructor de Facebook: $ facebook = new Facebook (array ( 'appId' => 'ID', 'secret' => 'SECRET', 'fileUpload' => true, 'cookie' => true)); –

22

Este es el código que trabajó para mí:

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

Enlace a la documentación: http://developers.facebook.com/docs/reference/api/photo

+1

Wow, eres el hombre AhDang ! – st4ck0v3rfl0w

+5

¿Cómo se puede saber esto? ¿Alguna documentación de Facebook.com? – Billy

+0

¡También me gustaría saber dónde encontraste esto! ¿A menos que hayas rodado el tuyo? –

7

Tienes que hacer algunas cosas para que la API de gráficos funcione con php. Este código funciona Note la FileUpload => true ...

también nunca fue capaz de conseguir que funcione con javascript por lo que estoy haciendo ajax a esto:

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"); 

+0

Gracias - eso es lo que olvidé con el PHP SDK, ¡para establecer setFileUploadSupport en verdadero! – thaddeusmt

+0

¡Simple y eficaz, buen trabajo! – Alex

Cuestiones relacionadas