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

Я использую вызовы 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

1 Ответ

0 голосов
/ 26 марта 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...