2015-01-12 33 views
8

私はiOSクライアント用のAPIを扱うレールアプリを持っています。私は、レールにオマージュ - フェイスブックを使用しています。 iOSクライアントでは、FacebookとFacebookの認証のためにAccountsとSocialフレームワークを使用しています。私はoauthトークンをつかんで、それを認証するためにomniauthコールバック経由でレールに渡しましたが、私はこのエラーを受けていました。誰かが私が間違っていることについて私を導くことができますか?下のログは私が得ているログです。レールとios認証のためのomniauth

Started POST "https://stackoverflow.com/users/auth/facebook/callback" for ::1 at 2015-01-12 10:59:22 +0800 I, [2015-01-12T10:59:22.928323 #99294] INFO -- omniauth: (facebook) Callback phase initiated. E, [2015-01-12T10:59:22.929737 #99294] ERROR -- omniauth: (facebook) Authentication failure! no_authorization_code: OmniAuth::Strategies::Facebook::NoAuthorizationCodeError, must pass either a code (via URL or by an fbsr_XXX signed request cookie) Processing by Users::OmniauthCallbacksController#failure as/Parameters: {"access_token"=>"tokenFromACFBiOS"} Redirected to localhost:3000/users/sign_in Completed 302 Found in 4ms (ActiveRecord: 0.0ms) 

ここに私のiOSとバックエンドコードの要点があります。 https://gist.github.com/chocnut/ae6f415accd95c8ef415

+0

'/ config/initializers/omniauth.rb'を投稿できますか? –

答えて

-1

facebook(fb)アプリを作成するときに、URLコールバックの場所を指定する必要があります。おそらくfbに次のように設定します。http://localhost:3000/bla/bla自分のマシンでテストしていてもあなたのマシンのip(例192.168.1.1)のようなものに対してlocalhostを変更する必要があります

0

omniauth-facebook-access-token Gemを使用してこれを実現できました。 https://github.com/SoapSeller/omniauth-facebook-access-token

「facebook_access_token」と呼ばれる自分の工夫初期化子内の別のOAuthプロバイダーを作成し、それがFacebookのプロバイダとして同じ資格情報を使用することができます。

トークンをパラメータ 'access_token'として送信します。あなたのアプリからの最終的な応答がJSONとして返されるようにするには、コールバックURLでクエリ文字列?format = jsonを使用します。

関連する問題