При смешивании гемов omniauth и fbgraph мне не удается получить ключ доступа - PullRequest
5 голосов
/ 29 июня 2011

Я использую Rails 3. Я получаю Rack :: OAuth2 :: Client :: Error в SessionsController # создать ошибку при попытке получить ключ доступа.Я использовал omniauth для входа в Facebook и получаю параметр ["code"]. Теперь я пытаюсь использовать fbgraph для получения кода доступа и получаю Rac :: OAuth2 :: Client :: Error.

  def create
    auth=request.env["omniauth.auth"]
    fb_auth=FbGraph::Auth.new("xxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxx")
    client=fb_auth.client
    client.redirect_uri="http://localhost:3000/facebook/callback/"
    client.authorization_code=params[:code]
    access_token = client.access_token!  # => Rack::OAuth2::AccessToken
    user=User.find_by_provider_and_uid(auth["provider"], auth["id"]) ||User.create_with_omniauth(auth, access_token)
    session[:user_id]=user.id

    redirect_to root_url, :notice => "Signed In!"
  end

Токен доступа!строка - это то, что возвращает ошибку.

1 Ответ

1 голос
/ 12 декабря 2011

Если вы установите redirect_uri на fb_auth вместо клиента, все будет в порядке, например:

fb_auth = FbGraph::Auth.new(
   "xxxxxxx",
   "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
   :redirect_uri = "http://localhost:3000/facebook/callback"
)
client=fb_auth.client
client.authorization_code=params[:code]
access_token = client.access_token!  # => Rack::OAuth2::AccessToken

Вам также следует проверить https://github.com/nov/fb_graph/issues/127#issuecomment-2244499,, затем прочитать код fb_graph_sample и настроитьотладка вашего FbGraph.

...