Как пропустить пользователя, вызывающего Koala::Facebook::APIError: OAuthException в блоке?

Я использую Koala для вызовов Facebook Graph API и использую блок для всех моих пользователей для сбора новых данных; однако один из моих пользователей изменил свой пароль, поэтому теперь я получаю ошибку Koala::Facebook::APIError: OAuthException в моем блоке, и он не запускает ни один из блоков после исключения. Как обнаружить исключение и пропустить этого пользователя?

  User.all.each do |g|
  @graph = Koala::Facebook::API.new(Service.find_by_user_id(g.id).access_token)
  @friends = @graph.get_connections("me", "friends")
  etc...
  end

Я пробовал три возможных решения, но не знаю, как правильно их реализовать или есть ли лучший способ. Когда я использую спасение, он просто завершает весь блок, ничего не делая. В конце концов мне нужно будет получить новый токен доступа, но сейчас я просто хочу иметь возможность пропустить их и продолжить блокировку.

rescue_from Koala::Facebook::APIError

rescue Koala::Facebook::APIError => e

if Koala::Facebook::API.new(Service.find_by_user_id(g.id).access_token) == Koala::Facebook::APIError
return
end

person ahuang7    schedule 24.03.2012    source источник


Ответы (1)


Вам нужно получать новый access_token каждый раз, когда вы вызываете FB Graph API.

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

person Kashyap    schedule 26.03.2012