-
Total de ítens
565 -
Registro em
-
Última visita
-
Days Won
2
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que valterpatrick postou
-
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 tópico in ACBrLIB
Obrigado -
Erro "Segmentation fault (core dumped)" linux
valterpatrick replied to valterpatrick's tópico 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 tópico 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 tópico 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 tópico 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 tópico 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?
-
Erro "Segmentation fault (core dumped)" linux
valterpatrick replied to valterpatrick's tópico in ACBrLIB
Localmente sim, mas na VPS está dando outro erro, GPK, mas estamos vendo isto. Este erro em especifico sim. -
Ai vem a grande dúvida, quais escopos tenho de colocar para enviar email? Eu coloquei apenas "https://www.googleapis.com/auth/gmail.send" que é o que preciso, ou seja, apenas enviar email. Não sei se é necessário colocar outros e quando seleciona uma opção mais ampla, eu tenho de fazer esta autenticação lá do Google que me pede video do youtube e não sei mais o que.
-
Eu vou tentar fazer de várias formas, com ele em produção, homologação, em tudo.
-
Eu selecionei o escopo, mas está pedindo para fazer uma verificação, é assim mesmo? Eu coloquei em anexo o arquivo "Configuração OAUTH Gmail.pdf", que é o passo a passo que eu segui para criar as credenciais. Poderia verificar se eu fiz certo? Configuração OAUTH Gmail.pdf
-
Erro "Segmentation fault (core dumped)" linux
valterpatrick replied to valterpatrick's tópico in ACBrLIB
Chegamos a formatar o PC e nada, ai fizemos todas as configurações novamente e nada, o que fez funcionar foi a instalação das libs abaixo: sudo apt-get install -y libssl-dev libxml2-dev libgtk2.0-dev Não chegamos a testar outras biblioteca para importação dos arquivos .so, já que está funcionando, mas iremos fazer isto com certeza. -
Sim capturei AccessToken e ele é informado no password: if fAutenticador.AccessToken <> '' then fSMTP.Password := fAutenticador.AccessToken; Contudo, quando chega na parte abaixo do código dá os erros que citei: for vAttempts := 1 to fAttempts do begin if fSMTP.MailFrom(fFrom, Length(fFrom)) then Break; AddErrorMsg(fSMTP.ResultString); if vAttempts >= fAttempts then SmtpError('SMTP Error: Unable to send MailFrom.' + sLineBreak + ErrorMsgs); end; Erros: Erro: SMTP Error: Unable to send MailFrom. 535 5.7.8 https://support.google.com/mail/?p=BadCredentials d9443c01a7336-20c13934817sm1435145ad.158 - gsmtp 530 5.7.0 https://support.google.com/mail/?p=WantAuthError d9443c01a7336-20c13934817sm1435145ad.158 - gsmtp Na minha conta do Google está mostrando como autorizado.
-
Estou tendo problema agora este erro: Erro: SMTP Error: Unable to send MailFrom. 535 5.7.8 https://support.google.com/mail/?p=BadCredentials d9443c01a7336-20c13934817sm1435145ad.158 - gsmtp 530 5.7.0 https://support.google.com/mail/?p=WantAuthError d9443c01a7336-20c13934817sm1435145ad.158 - gsmtp
-
Pessoal, estou utilizando a unit alterada que foi publicada em outro post (link abaixo). Eu criei as credenciais oauth no google e estou tentando fazer o envio de email com a unit alterada que está em anexo, contudo está dando erro ao enviar. Eu estou configurando conforme está no exemplo que foi apresentado no post anterior, onde estou enviando o escopo, client id, cliente secret, redirect uri, entre outros dados. Quando tento enviar, sou redirecionado para uma página onde eu clico para autorizar e gero o access token, refresh token e o tempo de expiração de 1 hora, mas dá o erro abaixo: Erro: SMTP Error: Unable to send MailFrom. 535 5.7.8 https://support.google.com/mail/?p=BadCredentials d9443c01a7336-20c13934817sm1435145ad.158 - gsmtp 530 5.7.0 https://support.google.com/mail/?p=WantAuthError d9443c01a7336-20c13934817sm1435145ad.158 - gsmtp Configurações: Host: smtp.gmail.com Email: [email protected] Porta: 587 e 465 (testei ambas) Client id: xxxxxxxxxxxxxxxxxxxxxx Cliente Secrect: yyyyyyyyyyyyyyyyyyyy Redirect URI: http://127.0.0.1:1500 Escopo: https://www.googleapis.com/auth/gmail.send URL AccessToken: https://accounts.google.com/o/oauth2/token URL: Autorization Token: https://accounts.google.com/o/oauth2/auth TLS: True e False (testei ambas) SSL: True e False (testei ambas) SSLType: LT_TLSv1_2 Link Post Anterior: Configuração OAUTH Gmail.pdf ACBrMail.pas OAuth2.Gmail.pas OAuth2.Outlook.pas OAuth2.pas
-
Erro "Segmentation fault (core dumped)" linux
valterpatrick replied to valterpatrick's tópico in ACBrLIB
Testamos aqui e não deu certo. Estamos agora tentando ver as dependências da biblioteca ffi-napi e talvez utilizar outras bibliotecas para importar os arquivos .so. https://www.npmjs.com/package/ffi-napi https://www.npmjs.com/package/node-addon-api https://www.npmjs.com/package/node-gyp https://www.npmjs.com/package/cmake-js https://www.npmjs.com/package/nan -
Blz, vou testar. Valeu.