2010-06-22 10 views
7

Powiel możliwe:
Add picture at facebook event with Graph APIZamontuj obraz na Facebooku imprezy (PHP SDK, reszta albo wykres API)

staram przez dobre kilka godzin teraz, aby utworzyć wydarzenie poprzez API Facebooka z obrazem. Do tej pory udało mi się stworzyć zdarzenia, mimo że zarówno Graph, jak i Rest API bez obrazów, ale nie udało się dołączyć żadnych obrazów.

Wierzę, że REST API jest jedynym API, który obsługuje dołączanie obrazów, ale dokumentacja jest dość słaba, a dokumentacja lub kod PHP-sdk również nie pomaga.

Moja ostatnia próba kończy się: http://promos.uk.glam.com/splash_test/example.php

z kodem: http://pastebin.com/8JC8RAck (uwaga "wymaga facebook.php" jest php-sdk - http://github.com/facebook/php-sdk/)

Uwaga linia 93 („if ($ uid) {"), to powinno być" if ($ me) {", które działało przez około godzinę, a następnie przestało działać (brak zmian w kodzie, który zapełnia $ me), nieparzyste.

Tak więc kod tworzenia zdarzeń to linie 96-99 i tak jak teraz tworzy zdarzenie bez obrazu, ale jak tylko wróciłem do skomentowanego kodu (wiersz 98), nie robi on nic .

Czy ktoś wie, jak tworzyć wydarzenia na Facebooku za pomocą interfejsu API z obrazami? Jeśli tak, pomóżcie mi tutaj! Nie mam problemu ze złomowaniem całego tego kodu, jeśli istnieje inne rozwiązanie, chociaż muszę użyć PHP lub JavaScript.

Dzięki wszystkim

Odpowiedz

10

Dziękuję wszystkim za odpowiedzi, postanowiłem ponownie sprawdzić, czy API działa poprawnie. To jest! Przesyłanie zdjęć za pomocą interfejsu Graph API działa teraz.Dzięki Stan James za zwrócenie mojej uwagi na ten i podając kod, aby dodawać zdjęcia, które przystosowane do imprez:

Setup:

//Setup the Facebook object allowing file upload 
$facebook = new Facebook(array(
    'appId' => 'xxxxxxxxxxxxxxxxxxxx', 
    'secret' => 'xxxxxxxxxxxxxxxxxxxx', 
    'cookie' => true, 
    'fileUpload' => true 
)); 

postu:

//Path to photo (only tested with relative path to same directory) 
$file = "end300.jpg"; 
//The event information array (timestamps are "Facebook time"...) 
$event_info = array(
    "privacy_type" => "SECRET", 
    "name" => "Event Title", 
    "host" => "Me", 
    "start_time" => 1290790800, 
    "end_time" => 1290799800, 
    "location" => "London", 
    "description" => "Event Description" 
); 
//The key part - The path to the file with the CURL syntax 
$event_info[basename($file)] = '@' . realpath($file); 
//Make the call and get back the event ID 
$result = $facebook->api('me/events','post',$event_info); 

Włożyłem wszystkie kod na pastebin (http://pastebin.com/iV0JL2mL), jest trochę brudny z mojego debugowania i złości się na Facebooku miesiąc temu! Ale działa.

0

można dodawać obrazy do facebook jak:

// variables required in this example: 
$img_path = "/home/www/test.png"; // image path 
$img_caption = "testing"; // caption 
$album_id = "12345678910"; // album id 
$facebook_uid = "555555555"; // facebook user id 
$facebok_user_access_token = "ajsdhflhasdf|sjdhflkasdf."; // facebook user token 

//upload photo 
$args = array(
    'aid'  => $album_id,  // album id, possibly event id? 
    'caption' => $img_caption, // caption for image 
    'uid'  => $facebook_uid, // facebook user id of the poster 
    'format' => 'json' 
    ); 
$args[basename($img_path)] = '@' . realpath($img_path); 
$ch = curl_init(); 
$url = "https://api.facebook.com/method/photos.upload?access_token={$facebook_user_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); 
$upload_result = curl_exec($ch); 

W ten sposób można korzystać z API do przesyłania zdjęć do albumów facebook wykorzystaniem PHP. Nie dokładnie pewne, że działa również na wydarzenia. Testowałem to, ale nie mam dostępu do Facebooka z pracy.

Mam nadzieję, że to dobry początek dla Ciebie.

2

To wydaje się działać

$file = "pj100.jpg"; 
$args = array(
    'access_token' => 'your access token', 
    'name' => 'Event name', 
    'description' => 'The Description ', 
    'start_time' => '2012-09-01T12:00:00+0000', 
    '@file.jpg' => '@' . realpath($file)); 
$target_url = "https://graph.facebook.com/me/events"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $target_url); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $args); 
$result = curl_exec($ch); 
curl_close($ch); 

echo "Event ID= " . $result; 
1

Poniższy kod działa dla mnie, używając PHP SDK.

$facebook->setFileUploadSupport(true); 
$attachment = array(
    'message' => $caption, 
);  
$attachment[basename($file_path)] = '@' . realpath($file_path); 
$result = $facebook->api('me/photos','post',$attachment); 

zrobić z surowego curl patrz this answer.

Powiązane problemy