2017-01-16 5 views
0

私はfacebookでかなりの標準的な料金でユーザーにサインインするための手動のオーソフローを設定しようとしています。Ruby HTTPRequestがフェイスブックのoauthサーバーに60秒以上かかります

リダイレクトが正しく機能しており、コードをコールバック関数に送信します。私はface_typeとアクセストークンを交換する必要があります。それは完全にタイムアウトしていない場合、60秒以上かかる。私はこれまで全く同じ機能を何回もやってきたし、問題はなかった。何らかの理由でFacebookに60秒以上かかる間、他のサイトは即座に応答します。このコードは、本番サーバーのレールコンソールで実行され、即座に動作することに注意してください。私がカールを介して同等の要求を行うと、即座に動作します。この問題はローカルマシンのRailsコンソールでのみ発生します。私はRestClientとHTTPartyでテストし、同じ結果を得ました。

url = "https://graph.facebook.com/v2.8/oauth/access_token?client_id=#{CLIENT_ID}&redirect_uri=http://127.0.0.1:3000/facebook_oauth_redirect&client_secret=#{CLIENT_SECRET}&code={#CODE}" 
response = RestClient.get(url, :content_type => 'application/json', :accept => :json) 

何がうまくいかないのか分かりません。私はSSLで何かを疑ったが、他のhttpsサイトから問題なく応答を得ることができる。私は、TCPSocket自体を開いて60秒以上かかることになりました。

他のサイトがその時間の一部分にある間に開くには約75秒かかります。私の同僚は、すぐにTCPSocketを開くことができることを確認しました。私は現時点ですべてのアイデアがないので、どんなアドバイスも大歓迎です。

EDIT:数週間前に問題が発生した可能性が高いと思われます。私は自分のMacをiPhoneのホットスポットに接続し、即座に動いた。

+2

あなたの 'url'は最後にランダム'} 'があります。それは間違いですか? 'CLIENT_SECRET'と' CODE'はそこに補間されません。これを他のマシンで試しましたか?多分あなたは抑えられているでしょう。 Rubyのインストールが壊れていて、Rubyのアップグレードが役立つかもしれません。 – tadman

+0

申し訳ありませんが、私はそれらの値のいくつかを検閲するために急いで、私はちょうどそれらを定数に置き換えました。たぶん私はルビーの別のバージョンを試してみるでしょう、もし私が5分ごとに1回のように要求していると思っていると思っていません。それに、それはカールで動作します。 – ColinF

+0

ルビーのバージョンを変更しても何も解決されず、ただ更新されました。 – ColinF

答えて

0

解決策は私のワイヤレスルータまたはモデムであり、何が完全にわからないのですか。私は数週間前にアップグレードして以来、お金はルータ上にあります。

パワーサイクルが役に立たなかったので、私はMACアドレスを偽装していました。電源を入れ直すと、問題が解決されたようです。

ブラウザ/カールのすべてが問題なく動作しているとはどういうことか分かりませんが、問題はレールコンソール(これは修正された偽装)にすぎませんでした。

関連する問題