В приложении 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'
Я хотел бы попросить вас о помощи, как обновить токен. Является ли в этом случае лучшим способом сохранить токен в базе данных и, например, за день до истечения срока действия, чтобы запустить это действие и обновить токен? Или есть лучший способ сделать это?
Большое спасибо