HTTP-запрос на получение

Я пытался заставить Rails играть с новым Facebook Graph API. После того, как я получу «код» авторизации, мне нужно отправить еще один запрос, который возвращает токен доступа в форме JSON.

Кажется, он работает нормально, однако я хочу получить токен доступа JSON без перенаправления пользователя. Я пытаюсь использовать Net::HTTP.get, но я не уверен, как его использовать для получения тела запроса, или даже правильно ли его использовать для начала.

Может ли кто-нибудь привести пример выполнения HTTP GET?


person Karl    schedule 08.05.2010    source источник


Ответы (2)


Я разобрался, как это сделать, проблема была в основном в том, что мне нужно было HTTPS-соединение.

Взято из http://snippets.dzone.com/posts/show/788:

path = '/oauth/access_token?...'
http = Net::HTTP.new('graph.facebook.com', 443)
http.use_ssl = true
res = http.get(path, nil)
@access_token = res.body

Любой, кто специально пытается использовать Graph API, обратите внимание, что значение, хранящееся в @access_token, имеет форму строки параметров, например. «access_token=xxxx&expires=1234».

Мне пришлось проанализировать это, просто перенаправив на другую страницу и используя ее в качестве параметров URL, но, вероятно, есть лучший способ сделать это.

person Karl    schedule 09.05.2010

СОА №1

Однако обратите внимание, что это означает, что сервер должен быть зарегистрирован на facebook - в то время как, если браузер перенаправляет, это пользователь, который должен войти на сервер. Следовательно, ваш сервер установил разрешение?

  • Вы можете притвориться, что вы пользователь. Плохо Ужасная идея (вы должны хранить пароли в открытом виде на вашем сервере).
  • Вы можете использовать OAuth. Следовательно, вы должны использовать гем OAuth вместо Net::HTTP. Вы не избежите перенаправления - это часть процесса авторизации, и пользователь должен сказать, что он разрешает доступ к данным (представьте, что было бы, если бы кто угодно мог получить доступ к любым данным на facebook). Турориал по написанию клиентов OAuth на рельсах.
person Maciej Piechotka    schedule 08.05.2010
comment
Graph API использует OAuth2, и, хотя для этого есть жемчужина, он использует Rack 1.1.0, что противоречит требованиям Rails 2.3.5 к Rack 1.0.x, поэтому я хотел бы избежать этого, если это возможно. Мне действительно удалось получить токен доступа с помощью некоторых ручных запросов, проблема в том, что на втором этапе - это после перенаправления на FB и обратно, и он отправил мне код - токен доступа просто отображается как JSON когда я его запрашиваю, и не перенаправляет обратно в мое приложение. Мне нужно прочитать этот JSON, как и получение любой страницы в целом, мне просто нужно знать, как это сделать в Rails. - person Karl; 08.05.2010