2010-04-27 9 views
43

Próbuję zapoznać się z nowym interfejsem API Graph API i do tej pory mogę dość łatwo pobierać i zapisywać dane.Prześlij zdjęcie do albumu za pomocą interfejsu API Graph na Facebooku

Coś, do czego dążę, aby znaleźć przyzwoitą dokumentację, to przesyłanie zdjęć do albumu.

Zgodnie z http://developers.facebook.com/docs/api#publishing należy podać argument wiadomość. Ale nie jestem do końca pewien, jak to zbudować.

Starsze zasoby czytałem to:

Jeśli ktoś ma więcej informacji lub może mi pomóc walki z przesyłaniem zdjęć do albumu przez Facebooka Graph API, odpowiedz!

Odpowiedz

48

Oto kilka różnych sposobów przesyłania zdjęć przy użyciu interfejsu API PHP Facebook Graph. Przykłady zakładają, że stworzyłeś obiekt $ facebook i masz poprawną sesję.

1 - Prześlij do domyślnej aplikacji Album bieżącego użytkownika

Ten przykład przesłać zdjęcie do albumu domyślnej aplikacji bieżącego użytkownika. Jeśli album jeszcze nie istnieje, zostanie utworzony.

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

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

2 - Prześlij Target Album

Ten przykład przesłać zdjęcie do konkretnego albumu.

$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

To zadziałało dla mnie! Kod jest krótszy i słodszy! – nishantcm

+2

Nie zapomnij dodać: $ facebook-> setFileUploadSupport (true); – AbeEstrada

+1

@Abe Tak, to jest poprawne, możesz to również określić w konstruktorze Facebooka: $ facebook = new Facebook (array ( 'appId' => 'ID', 'secret' => 'SECRET', 'fileUpload' => true, "cookie" => true)); –

22

Oto kod, który pracował dla mnie:

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

Link do dokumentacji: http://developers.facebook.com/docs/reference/api/photo

+1

Wow, jesteś człowiekiem AhDang ! – st4ck0v3rfl0w

+5

Skąd to wiesz? Wszelka dokumentacja z portalu Facebook.com? – Billy

+0

Chciałbym również wiedzieć, gdzie to znalazłeś! Chyba, że ​​przewróciłeś własne? –

7

Musisz zrobić kilka rzeczy, aby uzyskać api do pracy z php. Ten kod działa. Zauważ, że FileUpload => true ...

ja też nigdy nie był w stanie uzyskać go do pracy z JavaScript tak robię ajax do tego:

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

Dzięki - o tym zapomniałem w pakiecie PHP SDK, aby ustawić setFileUploadSupport na true! – thaddeusmt

+0

Prosta i skuteczna, dobra robota! – Alex

Powiązane problemy