public static YieldPromise <ulong, string> GetFacebookIdForAccessToken(string accessToken) { var query = "/me?access_token=" + Uri.EscapeDataString(accessToken); var promise = new YieldPromise <ulong, string>(); FB.API(query, HttpMethod.GET, result => { if (string.IsNullOrEmpty(result.Error)) { promise.Reject(result.Error); } else { var fbUserIdStr = result.ResultDictionary["id"].ToString(); ulong fbUserId; if (ulong.TryParse(fbUserIdStr, out fbUserId)) { promise.Resolve(fbUserId); } else { promise.Reject("Couldn't parse Facebook user ID"); } } }); return(promise); }