Загрузка фото с сервера на фейсбук - PullRequest
0 голосов
/ 25 сентября 2011

У меня есть приложение на холсте facebook, и я хочу загрузить файл со своего сервера на стену пользователя.

Facebook говорит, что должна быть создана форма, вот что я сделал:

 <form action="https://graph.facebook.com/me/photos?access_token=<%= @access_token %>" method="post" enctype="multipart/form-data">
        <input name="source" type="hidden" value="https://young-water-9853.herokuapp.com/images/1.jpg" />
        <input name="commit" type="submit" value="Upload photo" class="cupid-green" />
 </form>

Это ошибка, которую я получил:

{ "ошибка": { "message": "(# 324) Требуется загрузить файл", "type": "OAuthException" } }

Как я могу заставить это работать?

Решение:

Это действие, которое я использую, чтобы разместить изображение на стене:

get '/post_photo' do 
  RestClient.post 'https://graph.facebook.com/me/photos', :source => open('http://i52.tinypic.com/313jaxd.jpg'), :access_token => ACCESS_TOKEN
  redirect '/'
end

1 Ответ

3 голосов
/ 25 сентября 2011

Параметр источника должен быть файловым объектом, а не URL-адресом.Если пользователь загружал файл со своего компьютера:

 <form action="https://graph.facebook.com/me/photos?access_token=<%= @access_token %>" method="post" enctype="multipart/form-data">
        <input name="source" type="file" />
        <input name="commit" type="submit" value="Upload photo" class="cupid-green" />
 </form>

Или если вы хотите, чтобы пользователь загрузил предварительно определенное изображение, вы позаботились бы об этой стороне сервера.Камень rest_client выглядит как идеальное решение для этого:

require 'rest_client'
RestClient.post 'https://graph.facebook.com/me/photos', :source => File.new('/path/to/your/file'), :access_token => YOUR_ACCESS_TOKEN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...