Уже немного поздно, но я разочарован в себе, что не придумал что-то более элегантное. У кого-нибудь есть лучший способ сделать это ...
Когда вы передаете код OAuth в Facebook, он отвечает строкой запроса, содержащей значения access_token
и expires
.
access_token=121843224510409|2.V_ei_d_rbJt5iS9Jfjk8_A__.3600.1273741200-569255561|TxQrqFKhiXm40VXVE1OBUtZc3Ks.&expires=4554
Хотя, если вы запрашиваете разрешение на автономный доступ, expires
нет, и строка выглядит следующим образом:
access_token=121843224510409|2.V_ei_d_rbJt5iS9Jfjk8_A__.3600.1273741200-569255561|TxQrqFKhiXm40VXVE1OBUtZc3Ks.
Я попытался написать регулярное выражение, которое было бы достаточно для любого условия. Нет кости. Так что я получил действительно ужасный Ruby:
s = s.split("=")
@oauth = {}
if s.length == 3
@oauth[:access_token] = s[1][0, s[1].length - 8]
@oauth[:expires] = s[2]
else
@oauth[:access_token] = s[1]
end
Я знаю, что должен быть лучший способ!