Trochę za późno, ale jestem rozczarowany tym, że nie wymyśliłem czegoś bardziej eleganckiego. Każdy ma lepszy sposób na zrobienie tego ...Najbardziej sprytny sposób na przetestowanie dostępowego tokenu dostępu OAuth 2 na Facebooku
Po przesłaniu kodu OAuth do Facebooka, odpowiedź zawiera ciąg zapytania zawierający wartości access_token
i expires
.
access_token=121843224510409|2.V_ei_d_rbJt5iS9Jfjk8_A__.3600.1273741200-569255561|TxQrqFKhiXm40VXVE1OBUtZc3Ks.&expires=4554
Chociaż jeśli wniosek o pozwolenie na dostęp w trybie offline, nie ma expires
i ciąg wygląda następująco:
access_token=121843224510409|2.V_ei_d_rbJt5iS9Jfjk8_A__.3600.1273741200-569255561|TxQrqFKhiXm40VXVE1OBUtZc3Ks.
próbowałem napisać regex, że wystarczyłoby dla każdej kondycji. Nie ma kości. Więc skończyło się na naprawdę brzydkim 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
Wiem, że musi być lepszy sposób!
W kwestii ścisłości, tak, działa tak długo, jak "&" nigdy nie jest częścią tokena dostępu. Nie jestem pewien, czy to bezpieczne założenie. Nie można znaleźć niczego w specyfikacji do sprawdzenia poprawności. –