Ruby HTTPRequest занимает 60 + секунд для сервера facebook oauth

Я пытаюсь настроить ручную OAuth flow для входа моих пользователей через facebook, довольно стандартный тариф.

У меня есть перенаправление работает должным образом, и он отправляет код в мою функцию обратного вызова. Затем я должен обменять свой код на access_token с facebook. Это занимает 60 + секунд, если это не просто полностью тайм-аут. Я сделал это же функциональность несколько раз до этого и не было никаких проблем. Другие сайты будут реагировать мгновенно, в то время как facebook по какой-то причине занимает 60+ секунд. Имейте в виду, что этот же код, выполненный в консоли rails моего рабочего сервера, работает мгновенно. Если я делаю эквивалентный запрос через curl, он также работает мгновенно. Эта проблема возникает только в консоли 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 + секунд, чтобы быть открытым.

s = TCPSocket.new 'graph.facebook.com', 443

Это занимает около 75 секунд, чтобы открыть в то время как другие сайты находятся в долю этого времени. Мой коллега подтвердил, что он может открыть TCPSocket мгновенно. У меня нет идей на данный момент, поэтому любой совет будет приветствоваться.

EDIT: кажется, что проблема, вероятно, мой новый беспроводной маршрутизатор, который я получил несколько недель назад. Я подключил свой Mac к iPhone hotspot, и это сработало мгновенно.

1 ответ

  1. Решение оказалось мой беспроводной маршрутизатор или модем, не совсем уверен, что. Деньги на маршрутизаторе, так как я обновил несколько недель назад.

    Power cycling не помог, поэтому я подделал MAC-адрес, и это, казалось, решило проблему после цикла питания.

    Не очень уверен, что проблема, учитывая, что все в браузере/curl работал хорошо, Проблема была просто rails console (которая исправлена подмена).