private static void LoginNavigationStarted(Uri url, object state)
{
FacebookOAuthResult result;
// Check if we're waiting for user input or if login is complete
if (_client.TryParseOAuthCallbackUrl(url, out result))
{
// Login complete
if (result.IsSuccess)
{
AccessToken = result.AccessToken;
Expires = result.Expires;
_client.AccessToken = AccessToken;
Settings.Set(TOKEN_KEY, EncryptionProvider.Encrypt(AccessToken, AppId));
Settings.Set(EXPIRY_DATE_BIN, Expires.ToBinary());
}
_web.Finish();
if (_onHideUnity != null)
{
_onHideUnity(false);
}
API("/me?fields=id,name", HttpMethod.GET, fbResult =>
{
if (IsLoggedIn)
{
UserId = fbResult.Json["id"] as string;
UserName = fbResult.Json["name"] as string;
Settings.Set(FBID_KEY, UserId);
Settings.Set(FBNAME_KEY, UserName);
}
if (state is FacebookDelegate)
{
JsonObject jResult = new JsonObject();
jResult.Add(new KeyValuePair<string, object>("authToken", AccessToken));
jResult.Add(new KeyValuePair<string, object>("authTokenExpiry", Expires.ToString()));
((FacebookDelegate)state)(new FBResult()
{
Json = jResult,
Text = jResult.ToString()
});
}
});
}
}