페이스 북 액세스 토큰도 비슷해 보입니다. "1249203702 | 2.h1MTNeLqcLqw __. 86400.129394400-605430316 | -WE1iH_CV-afTgyhDPc"
사용하여 중간 부분을 추출하는 경우 | 당신을 나누기 위해
2.h1MTNeLqcLqw __. 86400.129394400-605430316
그런 다음 다시-
마지막 부분 605430316은 사용자 ID입니다.
다음은 액세스 토큰에서 사용자 ID를 추출하는 C # 코드입니다.
public long ParseUserIdFromAccessToken(string accessToken)
{
Contract.Requires(!string.isNullOrEmpty(accessToken);
long userId = 0;
var accessTokenParts = accessToken.Split('|');
if (accessTokenParts.Length == 3)
{
var idPart = accessTokenParts[1];
if (!string.IsNullOrEmpty(idPart))
{
var index = idPart.LastIndexOf('-');
if (index >= 0)
{
string id = idPart.Substring(index + 1);
if (!string.IsNullOrEmpty(id))
{
return id;
}
}
}
}
return null;
}
경고 :
액세스 토큰의 구조는 문서화되지 않았으며 항상 위의 패턴에 맞지 않을 수 있습니다. 자신의 책임하에 사용하십시오.
업데이트
Facebook의 변경으로 인해. 암호화 된 액세스 토큰에서 사용자 ID를 가져 오는 데 선호되는 방법은 다음과 같습니다.
try
{
var fb = new FacebookClient(accessToken);
var result = (IDictionary<string, object>)fb.Get("/me?fields=id");
return (string)result["id"];
}
catch (FacebookOAuthException)
{
return null;
}