私は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のホットスポットに接続し、即座に動いた。
あなたの 'url'は最後にランダム'} 'があります。それは間違いですか? 'CLIENT_SECRET'と' CODE'はそこに補間されません。これを他のマシンで試しましたか?多分あなたは抑えられているでしょう。 Rubyのインストールが壊れていて、Rubyのアップグレードが役立つかもしれません。 – tadman
申し訳ありませんが、私はそれらの値のいくつかを検閲するために急いで、私はちょうどそれらを定数に置き換えました。たぶん私はルビーの別のバージョンを試してみるでしょう、もし私が5分ごとに1回のように要求していると思っていると思っていません。それに、それはカールで動作します。 – ColinF
ルビーのバージョンを変更しても何も解決されず、ただ更新されました。 – ColinF