-
Posts
515 -
Joined
-
Last visited
-
Days Won
2
valterpatrick last won the day on March 3
valterpatrick had the most liked content!
About valterpatrick
Contact Methods
-
Website URL
https://github.com/valterpatrick
Recent Profile Visitors
2,147 profile views
valterpatrick's Achievements
-
Amigo, muito obrigado. Deu super certo. Apenas sugiro que altere esta parte no seu código na unit.pas: Use GetAccessToken ao invés de InteractiveAuthentication, pois no InteractiveAuthentication ele limpa os campos de token, já no GetAccessToken ele utiliza o InteractiveAuthentication e já retorna o campo certinho. procedure TForm1.btnConsentimentoClick(Sender: TObject); const msg = 'Será solicitado ao usuário permissão para enviar emails em seu nome.' + 'O código retornado será armazenado para futura solicitação do token de acesso'; var IniFile: string; Ini: TIniFile; begin Application.MessageBox(msg, 'Informação', 64); AjustaParametrosDeEnvio; //Antes: {ACBrMail1.Authenticator.InteractiveAuthentication;} //Depois: ACBrMail1.Authenticator.GetAccessToken; // ACBrMail1.Authenticator.AuthorizeToken contem o codigo de autorização para solicitar access token // Apos autorização atualizar tokens de acesso inválidos IniFile := ChangeFileExt(Application.ExeName, '.ini'); Ini := TIniFile.Create(IniFile); try Ini.WriteString('OAuth2', 'RefreshToken', ACBrMail1.Authenticator.RefreshToken); Ini.WriteString('OAuth2', 'AccessToken', ACBrMail1.Authenticator.AccessToken); Ini.WriteDateTime('OAuth2', 'ExpiraEm', ACBrMail1.Authenticator.ExpiresIn); finally Ini.Free; end; end; Eu vou tentar agora com o Hotmail
-
Vou tentar fazer os testes agora.
-
No meu caso o email de desenvolvedor e do app é o mesmo, eu tenho de fazer diferente?
-
Em relação a criação das credenciais no google? Muda alguma coisa? Como você fez o seu?
-
O que ele faz no caso?
-
Erro "Segmentation fault (core dumped)" linux
valterpatrick replied to valterpatrick's topic in ACBrLIB
Obrigado -
Erro "Segmentation fault (core dumped)" linux
valterpatrick replied to valterpatrick's topic in ACBrLIB
Alteramos o dockerfile e resolveu. Creio que era algum problema relacionado a dependências. dockerfile.txt -
Estou utilizando credenciais "App para computador" e não marquei o escopo na tela de permissão oauth, só enviei o escopo na requisição e cliquei para permitir, obtive o Access Token e Refresh Token, mas está dando o erro: Erro: SMTP Error: Unable to send Mail data. 503 5.5.1 specifications. 41be03b00d2f7-7e9f6c4a1c1sm4122261a12.81 - gsmtp Referência: https://support.google.com/a/answer/3726730?hl=pt-BR
-
Eu concordo com você, mas o problema é mais o cliente querer aderir a isto e ele não reclamar dos custos. Os valores da AWS não são altos e creio que na maioria dos meus clientes ficaria em menos de R$0,50 por mês. Se tudo não der certo, vou aconselhar a usar o AWS SES do qual já uso. AWS: https://aws.amazon.com/pt/ses/pricing/
-
Consulta Dados Sintegra
valterpatrick replied to daniel_mirassol's topic in DFe - Documentos Fiscais Eletrônicos
Testa isto aqui: procedure TConsultaCadastro.Execute; begin CoInitialize(nil); NFe := TACBrNFe.Create(nil); try try Synchronize(GetData); NFe.WebServices.ConsultaCadastro.UF := FUF; if Length(FCPF_CNPJ) > 11 then NFe.WebServices.ConsultaCadastro.CNPJ := FCPF_CNPJ else NFe.WebServices.ConsultaCadastro.CPF := FCPF_CNPJ; NFe.WebServices.ConsultaCadastro.Executar; Synchronize(RetornoSucesso); except on E: Exception do begin FErro := E.Message; if Trim(FErro) = '' then FErro := 'Erro desconhecido na consulta do cadastro na Sefaz.'; Synchronize(RetornoErro); end; end; finally CoUnInitialize; NFe.Free; end; end; Segue algumas informações improtantes: # cSit = Situação do contribuinte: 0 = Não habilitado; 1 = Habilitado; # indCredNFe = Indicador de contribuinte credenciado a emitir NF-e: 0 = Não credenciado para emissão da NF-e; 1 = Credenciado; 2 = Credenciado com obrigatoriedade para todas operações; 3 = Credenciado com obrigatoriedade parcial; 4 = SEFAZ não fornece a informação. Este indicador significa apenas que o contribuinte é credenciado para emitir NF-e na SEFAZ consultada; [ # indCredCTe = Indicador de contribuinte credenciado a emitir CT-e: 0 = Não credenciado para emissão da CT-e; 1 = Credenciado; 2 = Credenciado com obrigatoriedade para todas operações; 3 = Credenciado com obrigatoriedade parcial; 4 = SEFAZ não fornece a informação. Este indicador significa apenas que o contribuinte é credenciado para emitir CT-e na SEFAZ consultada; # xRegApur = Regime de Apuração do ICMS do Contribuinte; # IEUnica = IE única, este campo será informado quando o contribuinte possuir IE única; # IEAtual = IE atual (em caso de IE antiga consultada); Vou te mostrar o exemplo de retorno, eu salvo em um arquivo .ini: Config := TIniFile.Create(ExtractFileDir(Application.ExeName) + '\Config.ini'); try Config.EraseSection('CONSULTA_CADASTRO_SEFAZ'); Config.WriteBool('CONSULTA_CADASTRO_SEFAZ', 'Usado', True); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'cStat', NFe.WebServices.ConsultaCadastro.cStat); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xMotivo', NFe.WebServices.ConsultaCadastro.xMotivo); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'UF', NFe.WebServices.ConsultaCadastro.UF); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'cUF', NFe.WebServices.ConsultaCadastro.cUF); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'CNPJ', NFe.WebServices.ConsultaCadastro.CNPJ); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'CPF', NFe.WebServices.ConsultaCadastro.CPF); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'IE', IfThen(NFe.WebServices.ConsultaCadastro.IE.Trim = '', NFe.WebServices.ConsultaCadastro.RetConsCad.IE, NFe.WebServices.ConsultaCadastro.IE)); Config.WriteDateTime('CONSULTA_CADASTRO_SEFAZ', 'dhCons', NFe.WebServices.ConsultaCadastro.dhCons); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'QuantCadEst', NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad.Count); for I := 0 to NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad.Count - 1 do begin Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'IE_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].IE); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'CNPJ_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].CNPJ); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'CPF_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].CPF); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'UF_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].UF); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'cSit_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].cSit); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'indCredNFe_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].indCredNFe); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'indCredCTe_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].indCredCTe); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xNome_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xNome); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xFant_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xFant); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xRegApur_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xRegApur); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'CNAE_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].CNAE); Config.WriteDate('CONSULTA_CADASTRO_SEFAZ', 'dIniAtiv_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].dIniAtiv); Config.WriteDate('CONSULTA_CADASTRO_SEFAZ', 'dUltSit_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].dUltSit); Config.WriteDate('CONSULTA_CADASTRO_SEFAZ', 'dBaixa_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].dBaixa); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'IEUnica_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].IEUnica); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'IEAtual_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].IEAtual); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xLgr_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xLgr); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'nro_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].nro); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xCpl_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xCpl); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xBairro_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xBairro); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'cMun_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].cMun); Config.WriteString('CONSULTA_CADASTRO_SEFAZ', 'xMun_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].xMun); Config.WriteInteger('CONSULTA_CADASTRO_SEFAZ', 'CEP_' + (I + 1).ToString, NFe.WebServices.ConsultaCadastro.RetConsCad.InfCad[I].CEP); end; finally Config.Free; end; -
retorno dos códigos da sefaz
valterpatrick replied to Sigelman Araujo's topic in NFC-e - Nota Fiscal do Consumidor Eletrônica
Coloca dentro de um Try Except. try NFe.NotasFiscais[I].Validar; except on E: Exception do begin // Exibir mensagem com o E.message end end -
Quem ainda tem, está funcionando, mas não aparece mais a opção para configurar senha de app. Eu segui conforme está descrito ai, mas o problema que tenho é que eu preciso fazer alguns procedimentos para que o Google libere o envio de email quando eu uso o escopo "https://mail.google.com/". Tenho de criar um video no youtube e etc. Eu não sei se este é o caminho que todos estão fazendo agora, se for isto mesmo vou gravar um video, mas se não for eu gostaria de saber. Estou nesta dúvida agora. Pelo o que vi eu teria de seguir isto: https://support.google.com/cloud/answer/13463073?visit_id=638638963772284873-1041678242&hl=pt-br&rd=1#restricted-scopes Se tivesse alguém que fez recente e pudesse explicar se este é o caminho mesmo.
-
Erro "Segmentation fault (core dumped)" linux
valterpatrick replied to valterpatrick's topic in ACBrLIB
Isto, não tem ambiente gráfico. Vou ver o video, obrigado. -
Erro "Segmentation fault (core dumped)" linux
valterpatrick replied to valterpatrick's topic in ACBrLIB
-
Eu não achei este escopo, achei o https://mail.google.com/ sem o openid. No caso que preciso apenas enviar e-mail, como ficaria? No caso, como ficou o seu?