Funcionalidades
Funcionalidades liberadas para uso:
BuscarToken.
- Por padrão os tokens gerados pela meta tem durabilidade de 24hs. Apesar de possuir opção de gerar token permanente e aconselhável usar esse token somente para buscar tokens de acesso temporário para que esses realizem as requisições de envio de mensagens com o cliente.
- function BuscarToken(Client_ID, Client_Secret, Token: String): String; - Cliente ID: É a ID do aplicativo. - Cliente Secrete: É a chave secreta do aplicativo. - Token: É o token permanente gerado.
EnviarMensagemWhatsApp.
- Para usar essa opção o template tem de ser do tipo Texto.
- Nessa opção de envio, tudo que for enviado será através do formato texto. Onde pode ser enviado texto, valores, data e etc...
- Como informado no menu de cadastro conta Meta para a empresa enviar uma mensagem é obrigatório usar um tamplete onde o mesmo pode possuir parâmetros ou apenas mensagem fixa.
- procedure EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem: String; Dados: OleVariant ); - IDRemente: Ao cadastrar o telefone da empresa é gerado uma ID essa ID que será usada para identificar quem é a empresa que esta enviado a mensagem. - Token: Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente. - Telefone: Telefone para qual pretende enviar a mensagem. - Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar. - Linguagem: Linguagem na qual o template foi gerado. Ao cadastrar um template deve informar a linguagem do mesmo. - Dados: É um vetor de parâmetros. Caso não possuir parâmetros enviar ‘ ‘.
EnviarMensagemWhatsAppLink
- Para usar essa opção o template tem de ser do tipo 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 obrigado o recebedor a abrir para visualizar seu conteúdo diretamente. Agora usando a opção EnviarMensagemWhatsAppLink caso o arquivo seja uma imagem a mesma já é carregada, se for um vídeo o mesmo já fica com opção de player e etc...
- Informação importante:
- 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.
-procedure EnviarMensagemWhatsAppLink(IDRemetente, Token, Telefone, Template, Linguagem, Link, TipoArquivo: String; Dados: OleVariant); - IDRemente: Ao cadastrar o telefone da empresa é gerado uma ID essa ID que será usada para identificar quem é a empresa que esta enviado a mensagem. - Token: Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente. - Telefone: Telefone para qual pretende enviar a mensagem. - Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar. - Linguagem: Linguagem na qual o template foi gerado. Ao cadastrar um template deve informar a linguagem do mesmo. - Link: Link do arquivo. Deve ser respeitado o tópico de Informação importante. - TipoArquivo: Se o arquivo enviado no link é do tipo “Image”, “vídeo”, “document” - Dados: É um vetor de parâmetros. Caso não possuir parâmetros enviar ‘ ‘.
UploadArquivoWhatsApp
- 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.
- function UploadArquivoWhatsApp(IDRemetente, Token, FileName, TipoArquivo: String;): String; - IDRemente: Ao cadastrar o telefone da empresa é gerado uma ID essa ID que será usada para identificar quem é a empresa que esta enviado a mensagem. - Token: Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente. - 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”, “vídeo”, “document”
- 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.
DeletarArquivoWhatsApp
- 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.
- procedure DeletarArquivoWhatsaap(ID, Token: String); - ID: Id gerada na função UploadArquivoWhatsApp - Token: Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente.
EnviarMensagemWhatsAppAnexo
-Opção criada para enviar arquivos na qual foi realizado UploadArquivoWhatsApp.
-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
-Informação importante:
- O tamanho máximo de arquivo de mídia é de 100MB, Sendo: - Audio : 16MB - Document : 100MB - Image : 5MB - Video: 16MB - Formatos aceitos para Imagem Imagem: image/jpeg e image/png. - Formatos aceitos para Videos: video/mp4 e video/3gp - Formatos aceitos para 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 - Formatos aceitos para Audio: audio/aac, audio/mp4, audio/mpeg, audio/amr
- procedure EnviarMensagemWhatsAppAnexo(IDRemetente, Token, Telefone, Template, Linguagem, ID, TipoArquivo: String; Dados: OleVariant ); - IDRemente:Ao cadastrar o telefone da empresa é gerado uma ID essa ID que será usada para identificar quem é a empresa que esta enviado a mensagem. - Token: Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente. - Telefone: Telefone para qual pretende enviar a mensagem. - Template: Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar. - Linguagem: Linguagem na qual o template foi gerado. Ao cadastrar um template deve informar a linguagem do mesmo. - ID: Id gerada na função UploadArquivoWhatsApp - TipoArquivo: Se o arquivo enviado é do tipo “Image”, “video”, “document” - Dados: É um vetor de parâmetros. Caso não possuir parâmetros enviar ‘ ‘.
Exemplo prático do uso em um Gatilho
unit uDocumento_Fatura_AfterUpdServer; uses TEK_INTEGRACAO_WHATSAPP; Const Client_ID = 'ID do App'; Client_Secret = 'Cliente Secreto do APP'; IDRemetente = 'Informar ID do Remetente correspondente ao Telefone cadastrado no App'; Token_Permanente = 'Infomar Token Permanente'; Template = 'Nome do Template cadastrado na Meta'; Linguagem = 'Liguagem do Template. Exemplo: pt_br'; Link = 'Link de uma imagem da internet'; procedure Main; var Telefone, Token, ID, Documento, Valor: String; begin if (UpdateKind = ukInsert) and (ClassOwner = 'TSMCadPedidoVenda') then begin Documento := IntToStr(Value('CODIGO_DOCFAT')); Valor := FormatFloat('0.00',Value('VLRLIQUIDO_DOCFAT')); if Value('VLRLIQUIDO_DOCFAT') < 10000 then Exit; Telefone := SoNumero(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')); if Length(Telefone) < 10 then Exit; try Token := BuscarToken(Client_ID, Client_Secret, Token_Permanente); {Opção 1: Template sem paramentros} // EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem, VarArrayOf([‘ ‘])); {Opção 2: Template com um paramentro} // EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem, VarArrayOf([Documento])); {Opção 3: Template com um ou mais paramentros } // EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem, VarArrayOf([Documento, Valor])); {Opção 4: Enviando link com templates sem paramentros } // EnviarMensagemWhatsAppLink(IDRemetente, Token, Telefone, Template, Linguagem, Link, 'image', VarArrayOf([‘ ‘])); {Opção 5: Enviando link com templates com um ou mais paramentros } // EnviarMensagemWhatsAppLink(IDRemetente, Token, Telefone, Template, Linguagem, Link, 'image', VarArrayOf([Documento, Valor])); {Opção 6: Realizando o Upload de um arquivo, Enviando o arquivo com templates sem paramentros e Deletando arquivo enviado } // ID := UploadArquivoWhatsApp(IDRemetente, Token, 'C:\Tek-System\Temp\nome do arquio.jpg', 'image'); // EnviarMensagemWhatsAppAnexo(IDRemetente, Token, Telefone, Template, Linguagem, ID, 'image', VarArrayOf([‘ ‘])); // DeletarArquivoWhatsaap(ID, Token); {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(IDRemetente, Token, 'C:\Tek-System\Temp\nome do arquio.jpg', 'image'); // EnviarMensagemWhatsAppAnexo(IDRemetente, Token, Telefone, Template, Linguagem, ID, 'image', VarArrayOf([Documento, Valor])); // DeletarArquivoWhatsaap(ID, Token); except on E: Exception do EnviarMensagemInterna('Nome do Usuario', 'Erro ao enviar Mensagem via WhatsApp', 'O erro ocorreu ao enviar o Pedido: '+ Documento); // EnviarEMail('email do usuario','Erro ao enviar Mensagem via WhatsApp', 'O erro ocorreu ao enviar o Pedido: '+ Documento); end; end; end; end.