Mudanças entre as edições de "Integracao WhatsApp Funcionalidades"
Linha 111: | Linha 111: | ||
uses TEK_INTEGRACAO_WHATSAPP; | uses TEK_INTEGRACAO_WHATSAPP; | ||
Const | Const | ||
Template = 'Nome do Template cadastrado na Meta'; | Template = 'Nome do Template cadastrado na Meta'; | ||
Link = 'Link de uma imagem da internet'; | Link = 'Link de uma imagem da internet'; | ||
procedure Main; | procedure Main; |
Edição das 13h41min de 4 de agosto de 2023
Necessário realizar previamente as configurações, conforme Cadastro e Configurações
Gerar Token de Acesso
Tokens de acesso são utilizados para realizar os envios das mensagens aos clientes.
Requisição
function BuscarToken;
Enviar Mensagem Texto
Nessa opção de envio tratará apenas de conteúdo texto, consumindo um template do tipo Texto.
Requisição
function EnviarMensagemWhatsApp(Telefone, Template: String; Documento: Integer; Dados: OleVariant): Boolean;
- Telefone: Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
- Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
- Documento: Código do documento que será registrado na tek-system para controle de log e rastreio. Se optar por não enviar pode passar zero(0);
- Dados: Vetor de parâmetros variantes. Caso não possuir parâmetros enviar null.
Enviar Mensagem de Mídia
Opção criada para envio de Mídia através de links da internet. O Link também pode ser enviado usando a opção EnviarMensagemWhatsApp, a diferença é que nesse formato será enviado somente o link obrigando o recebedor a abrir para visualizar seu conteúdo. Utilizando a opção EnviarMensagemWhatsAppLink caso o arquivo seja uma imagem a mesma já será carregada, se for um vídeo o mesmo já fica com opção de player e etc...
Para usar essa opção o template tem de ser do tipo mídia.
Informação
- Para enviar imagens, a mesma tem de ser no formato jpg ou png. Exemplo: https://mobimg.b-cdn.net/pic/v2/gallery/preview/gory-pejzazh-priroda-46792.jpg
- Para enviar vídeos, o mesmo tem de ser no formato mp4 ou 3gp. Link do youtube por exemplo não são enviados usando a opção EnviarMensagemWhatsAppLink, somente a opção de EnviarMensagemWhatsApp.
Nessa opção, além do link do arquivo enviado pode também enviar as mesmas informações da opção de EnviarMensagemWhatsApp, que são mensagens fixas e mensagens com parâmetros.
Requisição
function EnviarMensagemWhatsAppLink(Telefone, Template, Link, DescricaoArquivo, TipoArquivo: String; Documento: Integer; Dados: OleVariant): Boolean;
- Telefone: Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
- Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
- Link: Link do arquivo. Deve ser respeitado o tópico de Informação importante.
- DescricaoArquivo: Nome do arquivo que esta sendo enviado.
- TipoArquivo: Se o arquivo enviado no link é do tipo “Image”, “vídeo”, “document”.
- Documento: Código do documento que será registrado na tek-system para controle de log e rastreio. Se optar por não enviar pode passar zero(0);
- Dados: Vetor de parâmetros variantes. Caso não possuir parâmetros enviar null.
Upload de Arquivo
Para conseguir enviar um arquivo de mídia do tipo, imagem, vídeo, documento, áudio entre outros que esteja por exemplo saldo seu HD, Pen drive entre outros é necessário realizar o upload do arquivo para a Meta e com um código de ID retornado realizar o envio da mídia para os destinatários.
Requisição
function UploadArquivoWhatsApp(FileName, TipoArquivo: String;): String;
- FileName: Caminho e nome do arquivo que deseja realizar o upload. Exemplo : C:\tek-System\temp\imagem.jpg.
- TipoArquivo: Se o arquivo enviado no FileName é do tipo “Image” (image/jpeg), “vídeo”(video/mp4), “document”(application/pdf)
Ao executar essa opção será retornado uma ID. Essa ID será usada para enviar o arquivo para os destinatários através da funcionalidade EnviarMensagemWhatsAppAnexo.
Deletar Arquivo
Quando realiza um Upload de um arquivo o mesmo fica disponível por 30 dias na Meta. Após esses 30 dias o mesmo e deletado de forma automática.
Quanto mais arquivos forem realizados Upload e mantido na Meta, atingindo o limite máximo, vai ficando lento o processo e enviar novos arquivos (Não foi especificado qual o limite máximo), para evitar esse problema, foi liberado opção de deletar o arquivo enviado.
Deletando os arquivos a empresa consegue gerenciar o processo.
Requisição
function DeletarArquivoWhatsApp(ID: String): Boolean;
- ID: Id gerada na função UploadArquivoWhatsApp.
Enviar Mensagem com Anexo
Nessa opção, além do arquivo de Mídia enviado pode também enviar as mesmas informações da opção de EnviarMensagemWhatsApp, que são mensagens fixas e mensagens com parâmetros
Opção criada para enviar arquivos na qual foi realizado UploadArquivoWhatsApp.
Formatos aceitos:
p/ Documentos: text/plain, application/pdf, application/vnd.ms-powerpoint, application/msword, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet p/ Imagem: image/jpeg e image/png p/ Audio: audio/aac, audio/mp4, audio/mpeg, audio/amr p/ Videos: video/mp4 e video/3gp
O tamanho máximo de arquivo de mídia:
Audio : 16MB Document : 100MB Image : 5MB Video: 16MB
Requisição
function EnviarMensagemWhatsAppAnexo(Telefone, Template, ID, DescricaoArquivo, TipoArquivo: String; Documento: Integer; Dados: OleVariant): Boolean;
- Telefone: Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
- Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
- ID: Id gerada na função UploadArquivoWhatsApp
- DescricaoArquivo: Nome do arquivo que esta sendo enviado.
- TipoArquivo: Se o arquivo enviado é do tipo “Image”, “video”, “document”.
- Documento: Código do documento que será registrado na tek-system para controle de log e rastreio. Se optar por não enviar pode passar zero(0);
- Dados: É um vetor de parâmetros. Caso não possuir parâmetros enviar null.
Exemplo de Uso Prático no Sistema
Ao gatilho ao cadastrar ou trocar status de um pedido de venda, será enviado mensagem ao cliente
unit uDocumento_Fatura_AfterUpdServer; uses TEK_INTEGRACAO_WHATSAPP; Const Template = 'Nome do Template cadastrado na Meta'; Link = 'Link de uma imagem da internet'; procedure Main; var Telefone, NumeroTelefone, TokenAcesso, ID, Documento, Valor, DescricaoArquivo, CaminhoArquivo: String; begin if (UpdateKind = ukInsert) and (ClassOwner = 'TSMCadPedidoVenda') and (NewValue('STATUS_DOCFAT') <> OldValue('STATUS_DOCFAT')) then begin Documento := IntToStr(Value('CODIGO_DOCFAT')); NovoStatus := Value('DESCRICAO_STATUS'); CaminhoArquivo := 'C:\Tek-System\Temp\nome do arquio.pdf'; DescricaoArquivo := ExtractFileName(CaminhoArquivo); // Pegar o número de celular NumeroTelefone := ExecuteScalar( 'select first 1 PESSOA_TELEFONE.TELEFONE_PESSOA_TEL TELEFONE '+#13+ 'from PESSOA_TELEFONE '+#13+ 'where PESSOA_TELEFONE.PESSOA_PESSOA_TEL = ' + IntToStr(Value('CLIENTE_DOCFAT')) + ' and '+#13+ ' PESSOA_TELEFONE.TIPOTELEFONE_PESSOA_TEL = ‘C‘ '+#13+ 'order by PESSOA_TELEFONE.TELEFONEPADRAO_PESSOA_TEL desc'); Telefone := '55'+ SoNumero(NumeroTelefone); if Length(Telefone) < 12 then Exit; try {Opção de buscar um novo tokne, toda função atualmente já busca token quando necessário} //TokenAcesso:= BuscarToken(); {Opção 1: Template sem paramentros} // EnviarMensagemWhatsApp(Telefone, Template, Documento, null)); {Opção 2: Template com um paramentro} // EnviarMensagemWhatsApp(Telefone, Template, Documento, VarArrayOf([Documento])); {Opção 3: Template com um ou mais paramentros } // EnviarMensagemWhatsApp(Telefone, Template, Documento, VarArrayOf([Documento, NovoStatus])); {Opção 4: Enviando link com templates sem paramentros } // EnviarMensagemWhatsAppLink(Telefone, Template, Documento, Link, ‘‘, 'image', null)); {Opção 5: Enviando link com templates com um ou mais paramentros } // EnviarMensagemWhatsAppLink(Telefone, Template, Documento, Link, 'Nome do Documento', 'Document', VarArrayOf([Documento, NovoStatus])); {Opção 6: Realizando o Upload de um arquivo, Enviando o arquivo com templates sem paramentros e Deletando arquivo enviado } // ID := UploadArquivoWhatsApp('C:\Tek-System\Temp\nome do arquio.jpg', 'image/jpeg'); // EnviarMensagemWhatsAppAnexo(Telefone, Template, ID, DescricaoArquivo, 'image', Documento, null)); // DeletarArquivoWhatsApp(ID); {Opção 7: Realizando o Upload de um arquivo, Enviando o arquivo com templates com um ou mais paramentros e Deletando arquivo enviado } // ID := UploadArquivoWhatsApp(CaminhoArquivo, 'application/pdf'); // EnviarMensagemWhatsAppAnexo(Telefone, Template, ID, DescricaoArquivo, 'document', Documento, VarArrayOf([Documento, NovoStatus])); // DeletarArquivoWhatsApp(ID, Token); except on Ex: Exception do EnviarMensagemInterna('Nome do Usuario', 'Erro ao enviar Mensagem via WhatsApp', 'O erro ocorreu ao enviar o Pedido: '+ Documento + #13+ Ex.Message); // EnviarEMail('email do usuario','Erro ao enviar Mensagem via WhatsApp', 'O erro ocorreu ao enviar o Pedido: '+ Documento + #13+ Ex.Message); end; end; end; end.