public comum.dto.PerfilAccessToken Processar(string token, Guid empresaId)
        {
            var responseFacebookInfos = empresaClient.ObterInfoFacebook(empresaId);

            responseFacebookInfos.ThrownIfError();

            var facekookInfos = responseFacebookInfos.Item;

            var url = $"https://graph.facebook.com/{facekookInfos.GraphApiVersao}/oauth/access_token?grant_type=fb_exchange_token&client_id={facekookInfos.AppId}&client_secret={facekookInfos.AppSecret}&fb_exchange_token={token}";

            var envelopeResponse = WebRequestHelper.GetExterno <AccessTokenResponse>(url);

            envelopeResponse.ThrownIfError();

            var perfilToken = new comum.dto.PerfilAccessToken
            {
                Token     = envelopeResponse.Item.access_token,
                Expiracao = DateTimeHelper.Now().AddSeconds(envelopeResponse.Item.expires_in),
                Tipo      = envelopeResponse.Item.token_type
            };

            perfilToken.Json = SerializadorHelper.Serializar(perfilToken);

            return(perfilToken);
        }
        public void RegistrarPerfil(Guid usuarioId, Guid EmpresaId, comum.dto.PerfilAccessToken token, UserResponse userResponse)
        {
            var request = PreparaRequest(usuarioId, EmpresaId, token, userResponse);

            var response = perfilClient.Registrar(request);

            response.ThrownIfError();
        }
        private RequestEnvelope <comum.dto.Perfil> PreparaRequest(Guid usuarioId, Guid EmpresaId, comum.dto.PerfilAccessToken token, UserResponse userResponse)
        {
            var imagemUrl = userResponse.picture.data.url;

            var perfil = new comum.dto.Perfil
            {
                UsuarioId      = usuarioId,
                EmpresaId      = EmpresaId,
                PerfilId       = userResponse.id,
                RedeSocial     = comum.enums.RedeSocialEnum.facebook,
                Nome           = userResponse.name,
                Login          = userResponse.short_name,
                ExpiracaoToken = token.Expiracao,
                Token          = token.Json,
                ImagemUrl      = imagemUrl
            };

            return(new RequestEnvelope <comum.dto.Perfil>(perfil));
        }