2011-04-02 1 views
1

Я искал вокруг всюду без везения и нашел множество примеров для загрузки фотографии в facebook, когда пользователь находится в сеансе (то есть пользователь физически сидит за компьютером и доступ к веб-странице). Я пробовал образцы, и они работают.Оффлайн загружать фотографию в Facebook с фотографией с веб-сервера

я заметил этот безответный вопрос с прошлого года по этому же вопросу Stackoverflow Question

Мое текущее приложение позволяет пользователю разрешить офф-лайн обновления, и я хранить access_token, user_id и т.д., и я могу успешно отправлять к пользователи, когда они находятся в автономном режиме.

Я действительно пытаюсь получить что-то, чтобы работать с публикацией фотографии на стене пользователей. Читая Facebook documentation, я думаю, что вы можете загружать фотографии только с помощью multipart/form-data!?!?

Это не сработает, если пользователь не находится на своем компьютере. Можете ли вы загружать фотографии, хранящиеся в каталоге на моем сервере?

Вот мой код. Помните, что это не использует сеанс facebook, поскольку access_code уже предоставлен и сохранен заранее. Как я уже упоминал, публикация на стене пользователя уже работает с этим подходом.

$filename= "@/myphotodir/filename.jpg"); 
$url = "https://graph.facebook.com/".$uid."/photos"; //$uid is fb user id 
$ch = curl_init($url); 
$attachment = array('access_token' => $access_token, 
       'app_id'   => $app_id, 
       'name'    => "A photo from me...", 
       'fileUpload'  => true, 
       'message'   => "my message", 
       'image'    => $filename, 
     ); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$result= curl_exec($ch); 
curl_close ($ch); 

Редактировать: $ result возвращается false ... забыл добавить это.

Любая помощь будет оценена по достоинству. Большое спасибо, Dean

ответ

0

Вы должны использовать SDK для Facebook. С помощью Facebook SDK вы можете использовать:

$facebook->setFileUploadSupport(true); 
$parameters = array(
    'access_token' => 'ACCESS_TOKEN_HERE', 
    'message' => 'PHOTO_CAPTION', 
    'image' => '@' . realpath('/path_to_file.jpg') // Notice the @ sign 
); 
$facebook->api('/user_id/photos', 'post', $parameters); 

Это сообщение, в котором будут размещены фотографии по умолчанию. Если вы замените user_id на album_id, вы можете опубликовать его в определенном альбоме.

+0

Я пробовал это раньше, и это не сработало. Тем не менее, я повторил попытку на случай, если я что-то пропустил, и SDK в Facebook ожидает данных формы сообщения (т. Е. Ожидает, что вы сидите на своем компьютере, загружая файл через форму). В режиме офлайн-загрузки не будет никаких данных для публикации формы. Точное сообщение об ошибке из SDK выглядит следующим образом. ----> "Неустранимая ошибка: Не удалось CurlException: 26: не удалось создать данные форматирования, брошенные в /home/myforev3/public_html/library/facebook.php в строке 629" – Dean

+0

Я хочу сделать то же самое. @Dean, вы нашли какое-то решение. Пожалуйста, сообщите мне, если да. заранее спасибо –

 Смежные вопросы

  • Нет связанных вопросов^_^