0

私は Facebook Graph API 呼び出しに Koala を使用しており、すべてのユーザーが新しいデータを収集するためにブロックを使用しています。ただし、ユーザーの 1 人がパスワードを変更したため、ブロックで 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

私は 3 つの潜在的な解決策を試みましたが、それらを正しく実装する方法や、より良い方法があるかどうかはわかりません。レスキューを使用すると、何もせずにブロック全体が完了します。最終的には新しいアクセス トークンを取得する必要がありますが、今のところはそれらをスキップしてブロックを続行できるようにしたいだけです。

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
4

1 に答える 1

0

FB Graph API を呼び出すたびに、新しい access_token を取得する必要があります。

コードから、ユーザーがサイトに接続したときに初めて取得したものと同じアクセス トークンを使用しているように見えます。それは正しくありません。

于 2012-03-26T05:41:09.157 に答える