public OAuth2Response Deserialize(Stream jsonStream)
        {
            if (jsonStream == null)
            {
                throw new ArgumentNullException("jsonStream");
            }

            var graph = (FacebookGraph)jsonSerializer.ReadObject(jsonStream);
            var response = new OAuth2Response
                {
                    UserId = Get(graph.Id),
                    Name = Get(graph.Name),
                    FirstName = Get(graph.FirstName),
                    LastName = Get(graph.LastName),
                    Email = Get(graph.Email),
                    EmailVerified = bool.Parse(Get(graph.Verified)),
                    Url = Get(graph.Link)
                };
            return response;
        }
        public OAuth2Response Deserialize(Stream jsonStream)
        {
            if (jsonStream == null)
            {
                throw new ArgumentNullException("jsonStream");
            }

            var graph = serializer.Deserialize<WindowsLiveGraph>(new StreamReader(jsonStream).ReadToEnd());

            var response = new OAuth2Response
                {
                    UserId = Get(graph.Id),
                    Name = Get(graph.Name),
                    FirstName = Get(graph.FirstName),
                    LastName = Get(graph.LastName),
                    Email = Get(graph.Emails["preferred"] ?? graph.Emails["account"]),
                    EmailVerified = bool.Parse(Get(graph.Verified)),
                    Url = Get(graph.Link)
                };
            return response;
        }