Возможный дубликат:
Добавить изображение в facebook event с помощью Graph API
Я пробовал уже несколько часов, чтобы создать мероприятие через API Facebook с изображением. До сих пор мне удалось создавать события, хотя оба API графики и отдыха без изображений, но не смогли подключить изображения.
Я считаю, что REST API – это единственный API, который поддерживает прикрепление изображений, но документация довольно плохая, и документы или код php-sdk тоже не помогают.
Моя последняя попытка закончена: http://promos.uk.glam.com/splash_test/example.php
С кодом: http://pastebin.com/8JC8RAck (обратите внимание, что «require facebook.php» – это php-sdk – http://github.com/facebook/php-sdk/ )
Обратите внимание на строку 93 («if ($ uid) {»), это должно быть «if ($ me) {», которое работало в течение часа или около того, а затем перестало работать (никаких изменений в коде, который заполняет $ я), странно.
Таким образом, код создания событий – это строки 96-99, и теперь он создает событие без изображения, но как только я вернусь в код с комментариями (строка 98), он ничего не может сделать.
Кто-нибудь знает, как создавать события на facebook, хотя API с изображениями? Если да, пожалуйста, помогите мне здесь! У меня нет проблем с утилитой всего этого кода, если есть другое решение, хотя я должен использовать PHP или Javascript.
Спасибо всем
Спасибо всем за ваши ответы, я решил пересмотреть это, чтобы проверить, правильно ли работает API сейчас. Это! Теперь выполняется загрузка изображений с помощью Graph API. Спасибо Стэну Джеймсу за то, что привлек мое внимание к этому и дал код для публикации фотографий, которые я адаптировал для событий:
Настроить:
//Setup the Facebook object allowing file upload $facebook = new Facebook(array( 'appId' => 'xxxxxxxxxxxxxxxxxxxx', 'secret' => 'xxxxxxxxxxxxxxxxxxxx', 'cookie' => true, 'fileUpload' => true ));
После:
//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);
Я поместил весь код на pastebin (http://pastebin.com/iV0JL2mL), это немного грязно от моей отладки и злиться на Facebook месяц назад! Но это работает.
Это похоже на работу
$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;
Следующий код работает для меня, используя PHP SDK .
$facebook->setFileUploadSupport(true); $attachment = array( 'message' => $caption, ); $attachment[basename($file_path)] = '@' . realpath($file_path); $result = $facebook->api('me/photos','post',$attachment);
Чтобы сделать это с помощью сырого curl
, см. Этот ответ .
Вы можете размещать изображения в facebook, например:
// 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);
Так вы можете использовать API для загрузки фотографий в альбомы facebook с помощью PHP. Не совсем точно, что он работает и для событий. Я бы проверил это, но я не могу получить доступ к facebook с работы.
Надеюсь, это хорошее начало для вас.