Mudanças entre as edições de "Integracao WhatsApp Funcionalidades"

De Tek-System Wiki
Ir para navegação Ir para pesquisar
Linha 1: Linha 1:
==Buscar Token.==
==Gerar Token de Acesso==
Por padrão os tokens gerados pela meta tem durabilidade de 24hs.
Tokens de acesso são utilizados para realizar os envios das mensagens aos clientes. 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;'''
   '''function BuscarToken(Client_ID, Client_Secret, Token: String): String;'''
    '''- Cliente ID:''' É a ID do aplicativo.
 
    '''- Cliente Secrete:''' É a chave secreta do aplicativo.
* Cliente ID: É a ID do aplicativo.
    '''- Token:''' É o token permanente gerado.
* Cliente Secrete: É a chave secreta do aplicativo.
* Token: É o Token permanente gerado.


==Enviar Mensagem Texto==
==Enviar Mensagem 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...
Nessa opção de envio tratará apenas de conteúdo texto, consumindo um template do tipo Texto.
 
  '''procedure EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem: String; Dados: OleVariant );'''


Para usar essa opção o template tem de ser do tipo Texto.
* 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 55 + DDD + Numero de Telefone.
* 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  ‘ ‘.


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.
Para mais informações sobre os templates acesse [[Integracao_WhatsApp_Cadastro_Configurações_Meta|Cadastro e Configurações]]


  '''- 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 55 + DDD + Numero de Telefone.
    '''- 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  ‘ ‘.


==Enviar Mensagem de Mída==
==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. Agora usando 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...
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.
Para usar essa opção o template tem de ser do tipo mídia.


Informação importante:
===Informação===
* Para enviar imagens, a mesma tem de ser no formato jpg ou png.  
* 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
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.
* 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.
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);'''
   '''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.
* 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.
    '''- Telefone:''' Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
* Token: Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente.
    '''- Template:''' Nome do template cadastrado na meta que será usado para a mensagem que deseja enviar.
* Telefone: Telefone para qual pretende enviar a mensagem 55 + DDD + Numero de Telefone.
    '''- Linguagem:''' Linguagem na qual o template foi gerado. Ao cadastrar um template deve informar a linguagem do mesmo.
* 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.
* Linguagem: Linguagem na qual o template foi gerado. Ao cadastrar um template deve informar a linguagem do mesmo.
    '''- TipoArquivo:''' Se o arquivo enviado no link é do tipo “Image”, “vídeo”, “document”
* Link: Link do arquivo. Deve ser respeitado o tópico de  Informação importante.
    '''- Dados:''' É um vetor de parâmetros. Caso não possuir parâmetros enviar  ‘ ‘.
* 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  ‘ ‘.


==Upload de Arquivo==
==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.
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;'''
   '''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.
* 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.
    '''- FileName:''' Caminho e nome do arquivo que deseja realizar  o upload.  
* Token: Aconselhado usar o token que foi gerado através da função BuscarToken e não o token permanente.
      - Exemplo : C:\tek-System\temp\imagem.jpg.
* 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)
* 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.'''''
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.




Linha 65: Linha 67:
Deletando os arquivos a empresa consegue gerenciar o processo.
Deletando os arquivos a empresa consegue gerenciar o processo.


   '''- procedure DeletarArquivoWhatsApp(ID, Token: String);'''
   '''procedure DeletarArquivoWhatsApp(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.
* 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==
==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
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.
Opção criada para enviar arquivos na qual foi realizado UploadArquivoWhatsApp.


Informação importante:
===Importante===
  - O tamanho máximo de arquivo de mídia é de 100MB, Sendo:
O tamanho máximo de arquivo de mídia é de 100MB, Sendo:
      - Audio : 16MB
  Audio : 16MB
      - Document : 100MB
  Document : 100MB
      - Image : 5MB
  Image : 5MB
      - Video: 16MB   
  Video: 16MB   
  - Formatos aceitos para Imagem Imagem: image/jpeg e image/png.  
 
  - Formatos aceitos para Videos:  video/mp4 e video/3gp
Formatos aceitos para Imagem Imagem: image/jpeg e image/png.  
  - 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 );'''
Formatos aceitos para Videos: video/mp4 e video/3gp
    '''- 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 55 + DDD + Numero de Telefone.
    '''- 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  ‘ ‘.


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


==Exemplo de Uso==
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 55 + DDD + Numero de Telefone.
* 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 de Uso Prático no Sistema==


Ao gatilho ao cadastrar um pedido de venda com valor maior que R$10.000,00 reais será enviado mensagem ao cliente
Ao gatilho ao cadastrar um pedido de venda com valor maior que R$10.000,00 reais será enviado mensagem ao cliente
Linha 113: Linha 122:
  procedure Main;
  procedure Main;
  var  
  var  
   Telefone, NumeroTelefone, Token, ID, Documento, Valor: String;
   Telefone, NumeroTelefone, TokenAcesso, ID, Documento, Valor: String;
  begin           
  begin           
   if (UpdateKind = ukInsert) and (ClassOwner = 'TSMCadPedidoVenda') then
   if (UpdateKind = ukInsert) and (ClassOwner = 'TSMCadPedidoVenda') and (NewValue('STATUS_DOCFAT') <> OldValue('STATUS_DOCFAT')) then
   begin
   begin
     Documento := IntToStr(Value('CODIGO_DOCFAT'));
     Documento := IntToStr(Value('CODIGO_DOCFAT'));
     Valor := FormatFloat(',0.00',Value('VLRLIQUIDO_DOCFAT'));
     NovoStatus := Value('DESCRICAO_STATUS');
   
       
    if Value('VLRLIQUIDO_DOCFAT') < 10000 then
     // Pegar o número de celular
      Exit;
      
     NumeroTelefone := ExecuteScalar(
     NumeroTelefone := ExecuteScalar(
       'select first 1 PESSOA_TELEFONE.TELEFONE_PESSOA_TEL TELEFONE '+#13+
       'select first 1 PESSOA_TELEFONE.TELEFONE_PESSOA_TEL TELEFONE '+#13+
       'from PESSOA_TELEFONE  '+#13+
       'from PESSOA_TELEFONE  '+#13+
       'where PESSOA_TELEFONE.PESSOA_PESSOA_TEL = '+ IntToStr(Value('CLIENTE_DOCFAT'))+' and '+#13+
       'where PESSOA_TELEFONE.PESSOA_PESSOA_TEL = ' + IntToStr(Value('CLIENTE_DOCFAT')) + ' and '+#13+
       '  PESSOA_TELEFONE.TIPOTELEFONE_PESSOA_TEL = ‘C‘  '+#13+
       '  PESSOA_TELEFONE.TIPOTELEFONE_PESSOA_TEL = ‘C‘  '+#13+
       'order by PESSOA_TELEFONE.TELEFONEPADRAO_PESSOA_TEL desc');  
       'order by PESSOA_TELEFONE.TELEFONEPADRAO_PESSOA_TEL desc');  
Linha 135: Linha 142:
        
        
     try  
     try  
       Token := BuscarToken(Client_ID, Client_Secret, Token_Permanente);                       
       TokenAcesso:= BuscarToken(Client_ID, Client_Secret, Token_Permanente);                       
      
      
       {Opção 1: Template sem paramentros}
       {Opção 1: Template sem paramentros}
       // EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem, VarArrayOf([‘ ‘]));  
       // EnviarMensagemWhatsApp(IDRemetente, TokenAcesso, Telefone, Template, Linguagem, VarArrayOf([‘ ‘]));  
        
        
       {Opção 2: Template com um paramentro}
       {Opção 2: Template com um paramentro}
       // EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem, VarArrayOf([Documento]));  
       // EnviarMensagemWhatsApp(IDRemetente, TokenAcesso, Telefone, Template, Linguagem, VarArrayOf([Documento]));  
      
      
       {Opção 3: Template com um ou mais paramentros }
       {Opção 3: Template com um ou mais paramentros }
       // EnviarMensagemWhatsApp(IDRemetente, Token, Telefone, Template, Linguagem, VarArrayOf([Documento, Valor]));  
       // EnviarMensagemWhatsApp(IDRemetente, TokenAcesso, Telefone, Template, Linguagem, VarArrayOf([Documento, NovoStatus]));  
      
      
       {Opção 4: Enviando link com templates sem paramentros }
       {Opção 4: Enviando link com templates sem paramentros }
       // EnviarMensagemWhatsAppLink(IDRemetente, Token, Telefone, Template, Linguagem, Link, 'image', VarArrayOf([‘ ‘]));  
       // EnviarMensagemWhatsAppLink(IDRemetente, TokenAcesso, Telefone, Template, Linguagem, Link, 'image', VarArrayOf([‘ ‘]));  
      
      
       {Opção 5: Enviando link com templates com um ou mais paramentros }
       {Opção 5: Enviando link com templates com um ou mais paramentros }
       // EnviarMensagemWhatsAppLink(IDRemetente, Token, Telefone, Template, Linguagem, Link, 'image', VarArrayOf([Documento, Valor]));   
       // EnviarMensagemWhatsAppLink(IDRemetente, Token, Telefone, Template, Linguagem, Link, 'image', VarArrayOf([Documento, NovoStatus]));   
        
        
       {Opção 6: Realizando o Upload de um arquivo,  Enviando o arquivo com templates sem paramentros e  Deletando arquivo enviado }
       {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/jpeg');  
       // ID := UploadArquivoWhatsApp(IDRemetente, TokenAcesso, 'C:\Tek-System\Temp\nome do arquio.jpg', 'image/jpeg');  
       // EnviarMensagemWhatsAppAnexo(IDRemetente, Token, Telefone, Template, Linguagem, ID, 'image', VarArrayOf([‘ ‘]));   
       // EnviarMensagemWhatsAppAnexo(IDRemetente, TokenAcesso, Telefone, Template, Linguagem, ID, 'image', VarArrayOf([‘ ‘]));   
       // DeletarArquivoWhatsApp(ID, Token);
       // DeletarArquivoWhatsApp(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 }
       {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/jpeg');  
       // ID := UploadArquivoWhatsApp(IDRemetente, TokenAcesso, 'C:\Tek-System\Temp\nome do arquio.jpg', 'image/jpeg');  
       // EnviarMensagemWhatsAppAnexo(IDRemetente, Token, Telefone, Template, Linguagem, ID, 'image', VarArrayOf([Documento, Valor]));   
       // EnviarMensagemWhatsAppAnexo(IDRemetente, TokenAcesso, Telefone, Template, Linguagem, ID, 'image', VarArrayOf([Documento, NovoStatus]));   
       // DeletarArquivoWhatsApp(ID, Token);
       // DeletarArquivoWhatsApp(ID, Token);
      
      
     except
     except
    on E: Exception do
      on Ex: Exception do
      EnviarMensagemInterna('Nome do Usuario', 'Erro ao enviar Mensagem via WhatsApp', 'O erro ocorreu ao enviar o Pedido: '+ Documento + #13+ E.Message);
        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+ E.Message);             
        // EnviarEMail('email do usuario','Erro ao enviar Mensagem via WhatsApp',  'O erro ocorreu ao enviar o Pedido: '+ Documento + #13+ Ex.Message);             
     end;
     end;
      
      

Edição das 13h22min de 10 de novembro de 2022

Gerar Token de Acesso

Tokens de acesso são utilizados para realizar os envios das mensagens aos clientes. Por padrão os tokens gerados pela meta tem durabilidade de 24hs.


 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.

Enviar Mensagem Texto

Nessa opção de envio tratará apenas de conteúdo texto, consumindo um template do tipo Texto.

  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 55 + DDD + Numero de Telefone.
  • 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 ‘ ‘.

Para mais informações sobre os templates acesse Cadastro e Configurações


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

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 55 + DDD + Numero de Telefone.
  • 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 ‘ ‘.

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.

  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” (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.

 procedure DeletarArquivoWhatsApp(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.

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.

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 55 + DDD + Numero de Telefone.
  • 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 de Uso Prático no Sistema

Ao gatilho ao cadastrar um pedido de venda com valor maior que R$10.000,00 reais será enviado mensagem ao cliente

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, NumeroTelefone, TokenAcesso, ID, Documento, Valor: 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');
       
   // 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 
     TokenAcesso:= BuscarToken(Client_ID, Client_Secret, Token_Permanente);                       
   
     {Opção 1: Template sem paramentros}
     // EnviarMensagemWhatsApp(IDRemetente, TokenAcesso, Telefone, Template, Linguagem, VarArrayOf([‘ ‘])); 
     
     {Opção 2: Template com um paramentro}
     // EnviarMensagemWhatsApp(IDRemetente, TokenAcesso, Telefone, Template, Linguagem, VarArrayOf([Documento])); 
   
     {Opção 3: Template com um ou mais paramentros }
     // EnviarMensagemWhatsApp(IDRemetente, TokenAcesso, Telefone, Template, Linguagem, VarArrayOf([Documento, NovoStatus])); 
   
     {Opção 4: Enviando link com templates sem paramentros }
     // EnviarMensagemWhatsAppLink(IDRemetente, TokenAcesso, 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, NovoStatus]));  
     
     {Opção 6: Realizando o Upload de um arquivo,  Enviando o arquivo com templates sem paramentros e  Deletando arquivo enviado }
     // ID := UploadArquivoWhatsApp(IDRemetente, TokenAcesso, 'C:\Tek-System\Temp\nome do arquio.jpg', 'image/jpeg'); 
     // EnviarMensagemWhatsAppAnexo(IDRemetente, TokenAcesso, Telefone, Template, Linguagem, ID, 'image', VarArrayOf([‘ ‘]));  
     // DeletarArquivoWhatsApp(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, TokenAcesso, 'C:\Tek-System\Temp\nome do arquio.jpg', 'image/jpeg'); 
     // EnviarMensagemWhatsAppAnexo(IDRemetente, TokenAcesso, Telefone, Template, Linguagem, ID, 'image', 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.