Rails + Facebook: как обновить токен доступа к Facebook?

В приложении Rails мы реализовали Facebook API. У нас есть страница Facebook, на которой нам нужно автоматически публиковать статусы, когда пользователь публикует что-то в приложении Rails. Проблема в том, что нам нужно автоматически обновлять токен доступа Facebook. Я пытаюсь сделать это таким образом, но, поскольку я делаю это в первый раз, я немного потерялся здесь:

def fb_autopost    
    require 'net/http'
    temp_token = 'my_short_time_token'


    app_id = '145634995501123' # I didn't put here real token from obvious reason
    app_secret = '0dd5fcf93b4280fb19bf6b80f487c123' # I didn't put here real token from obvious reason
    puts "https://graph.facebook.com/oauth/access_token?client_id=#{app_id}&client_secret=#{app_secret}&grant_type=fb_exchange_token&fb_exchange_token=#{temp_token}"
    puts '---'
    url = "https://graph.facebook.com/oauth/access_token?client_id=#{app_id}&client_secret=#{app_secret}&grant_type=fb_exchange_token&fb_exchange_token=#{temp_token}"
    response = open(url)
    puts response.inspect
    puts '---'  
  end

Когда я запускаю этот код, я получаю эту ошибку:

Processing by ListingsController#post_to_fb as HTML
Completed 500 Internal Server Error in 1015ms

OpenURI::HTTPError (400 Bad Request):
  app/controllers/listings_controller.rb:194:in `fb_autopost'

Я хотел бы попросить вас о помощи, как обновить токен. Является ли в этом случае лучшим способом сохранить токен в базе данных и, например, за день до истечения срока действия, чтобы запустить это действие и обновить токен? Или есть лучший способ сделать это?

Большое спасибо


person user984621    schedule 08.09.2013    source источник
comment
Попробуйте использовать Omniauth Facebook проще, просто совет =D.   -  person overallduka    schedule 08.09.2013
comment
Я столкнусь там с тем же самым с обновлением токена доступа.   -  person user984621    schedule 08.09.2013


Ответы (1)


Я лично использую этот гем: https://github.com/nov/fb_graph

Вы должны найти все необходимое в документации (https://github.com/nov/fb_graph#normal-oauth2-flow)

person Jérôme Boé    schedule 08.09.2013