Я пытаюсь использовать гем garb для доступа к данным из Google Analytics API и обнаруживаю, что http-запросы, использующие garb, прекрасно работают из учетной записи Linode, но отклоняются из дома (Comcast). Google отклоняет некоторые виды http-запросов от определенных интернет-провайдеров, или я просто делаю что-то не так? Простой пример ниже:
require 'garb'
Garb::Session.login('XXXXXX@gmail.com', 'XXXXXX')
@profile = Garb::Profile.all.first
@report = Garb::Report.new(@profile)
@report.metrics :visits
puts @report.results
Это дает => [#<OpenStruct visits="21">]
на моем Линоде, но то же самое, что и мой домашний провайдер, дает:
Garb::DataRequest::ClientError: "<errorsxmlns=.........
Который поднят здесь в одежде:
def send_request
response = if @session.single_user?
single_user_request
elsif @session.oauth_user?
oauth_user_request
end
raise ClientError, response.body.inspect unless response.kind_of?(Net::HTTPSuccess)
response
end
Первоначальный сеанс входа в систему работает отлично с обоих IP-адресов. Ошибка генерируется только при запросе результатов. Что я могу сделать, чтобы это исправить? Я (пока) не проверил, что я получаю точно такое же поведение, когда выполняю запросы clientlogin / data вручную. Я совершенно уверен, что это не проблема самоцветов, а проблема, связанная с IP - возможно, это связано с политикой квот для веб-сервисов Google - но я готов принять все возможные решения.
Спасибо,
Orion