Извлечение данных cookie в Facebook и Rails 3 - PullRequest
1 голос
/ 16 октября 2010

Я использую Rails 3 и Facebook Javascript SDK, и при входе в систему создается файл cookie. Я хочу иметь возможность извлекать данные из этого cookie с помощью Rails.

Я получил код PHP, который добился цели, но я хочу использовать код Rails. Как выглядит приведенный ниже код на PHP в Rails?

function get_facebook_cookie($app_id, $application_secret) {
  $args = array();
  parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
  ksort($args);
  $payload = '';
  foreach ($args as $key => $value) {
    if ($key != 'sig') {
      $payload .= $key . '=' . $value;
    }
  }
  if (md5($payload . $application_secret) != $args['sig']) {
    return null;
  }
  return $args;
}

$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);

1 Ответ

5 голосов
/ 04 января 2011

Вместо того, чтобы изобретать велосипед, используйте один из драгоценных камней Ruby, которые поддерживают API Facebook.Например, эквивалент с использованием камня Koala выглядит примерно так:

require 'rubygems'
require 'koala'

FB_APP_ID = "<your-app-id">
FB_APP_SECRET = "<your-app-secret>"

@oauth = Koala::Facebook::OAuth.new(FB_APP_ID, FB_APP_SECRET)
info = @oauth.get_user_info_from_cookies(cookies) # parses and returns the entire hash

puts info.inspect
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...