Rails 3 - войдите на другой сайт и сохраняйте куки в сессии

я собираю небольшое приложение, которое позволит пользователю войти в полупопулярную социальную сеть, которая неу меня нет достаточного API, поэтому яЯ использую механизм механизации для автоматизации нескольких функций, которые я хотел бы добавить для любого, например массовых сообщений.

Из-за ограничений API, яЯ вынужден сделать это, притворяясь пользователем, взаимодействующим с http-интерфейсом сайта.

Проблема яу меня есть, как только пользователь заходит на мой сайт, как я могу сохранить куки с сайта социальной сети в сеансе, чтобы они неНе нужно вводить учетные данные для каждой загрузки страницы?

Я пытался собрать cookie из экземпляра Mechanize, но получил ошибки, связанные с мьютексом.У него нет метода маршала.

РЕДАКТИРОВАТЬ - Решено

Оказалось, довольно просто, но документация точно нене может помочь, просто из-за незавершенности.

Вот'Что я сделал, чтобы поймать куки и вернуть их для будущих запросов (большая часть кода и проверка ошибок исключены для краткости):

users_controller.rb

def create
  session.delete(:agent) if session[:agent]
  agent = Mechanize.new
  page = agent.get('www.socialnetwork.com/login')
  login_form = page.form
  login_form.email = params[:login][:email]
  login_form.password = params[:login][:password]
  page = agent.submit(login_form, login_form.buttons.first)
  cookies = agent.cookie_jar.store.map {|i| i}
  session[:agent] = Marshal.dump cookies
  redirect_to root_path
end

application_controller.rb

before_filter :set_agent
def set_agent
  if session[:agent]
    @agent = Mechanize.new
    cookies = Marshal.load session[:agent]
    cookies.each {|i| @agent.cookie_jar.store.add i}
  end
end
 bdx09 июн. 2013 г., 07:20
Ошибка яm при попытке сохранить агент механизации в сеансе:_dump_data не определено для класса Mutex "

Ответы на вопрос(1)

Решение Вопроса

только сессионный cookie. Найдите название файла cookie, который вы хотите сохранить. После входа в систему извлеките его из архива cookie Механизации, сохраните в сеансе и убедитесь, чтов баночке с печеньем перед каждымЗапрос API ".

Ваш ответ на вопрос