Ir para conteúdo
Fórum Script Brasil
  • 0

Envio de arquivo pelo whatsapp através do excel


diegocorreia4

Pergunta

Olá pessoal, 

Tenho uma pasta com vários arquivos de holerite, que estão renomeados com a matrícula e nome do funcionario. Gostaria de enviar esses contracheques pelo whatsapp, pensei em enviar pelo excel através de VBA, será que é possivel fazer esse envio?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Sim, é possível enviar mensagens pelo WhatsApp utilizando VBA no Excel, mas é importante notar que você precisará de uma API ou uma integração que permita o envio de mensagens. Uma das opções mais populares é usar a API do WhatsApp Business. Vou descrever um passo a passo de como você pode fazer isso:

### Passo a Passo para Enviar Mensagens pelo WhatsApp usando VBA

1. **Obtenha Acesso à API do WhatsApp Business:**
   - Registre-se e configure a conta do WhatsApp Business API.
   - Obtenha o `API Key` e a `URL` para enviar mensagens.

2. **Configure uma Tabela no Excel:**
   - Crie uma planilha onde cada linha contém os dados necessários: matrícula, nome do funcionário, número do WhatsApp, e caminho do arquivo de holerite.

3. **Escreva o Código VBA:**
   - O código VBA irá iterar sobre as linhas da planilha e enviar uma mensagem personalizada para cada número de WhatsApp.

Aqui está um exemplo básico de como o código VBA pode ser estruturado para enviar mensagens pelo WhatsApp:

```vba
Sub EnviarWhatsApp()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim matricula As String
    Dim nomeFuncionario As String
    Dim numeroWhatsApp As String
    Dim caminhoArquivo As String
    Dim apiURL As String
    Dim apiKey As String
    Dim jsonBody As String
    Dim objHTTP As Object

    ' Configure a URL da API e a chave da API
    apiURL = "https://api.whatsapp.com/send?"
    apiKey = "YOUR_API_KEY"

    ' Defina a planilha e encontre a última linha com dados
    Set ws = ThisWorkbook.Sheets("Planilha1")
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' Iterar sobre cada linha e enviar mensagem
    For i = 2 To lastRow ' Supondo que a linha 1 contém os cabeçalhos
        matricula = ws.Cells(i, 1).Value
        nomeFuncionario = ws.Cells(i, 2).Value
        numeroWhatsApp = ws.Cells(i, 3).Value
        caminhoArquivo = ws.Cells(i, 4).Value

        ' Construa o corpo da mensagem em JSON
        jsonBody = "{""number"": """ & numeroWhatsApp & """, ""message"": ""Olá " & nomeFuncionario & ", segue seu holerite."", ""attachment"": """ & caminhoArquivo & """}"

        ' Configure e envie a requisição HTTP
        Set objHTTP = CreateObject("MSXML2.XMLHTTP")
        With objHTTP
            .Open "POST", apiURL, False
            .setRequestHeader "Content-Type", "application/json"
            .setRequestHeader "Authorization", "Bearer " & apiKey
            .send jsonBody
        End With

        ' Verificar o status da resposta
        If objHTTP.Status = 200 Then
            MsgBox "Mensagem enviada para " & nomeFuncionario
        Else
            MsgBox "Erro ao enviar mensagem para " & nomeFuncionario
        End If

        Set objHTTP = Nothing
    Next i
End Sub
```

### Nota Importante:
1. **Configuração da API:** Você precisa substituir `"YOUR_API_KEY"` com a chave de API real obtida do WhatsApp Business API.
2. **Formato do JSON:** O formato do corpo do JSON pode variar dependendo da API que você está usando. Certifique-se de ler a documentação da API para saber como formatar corretamente as mensagens e anexos.
3. **Segurança:** Nunca compartilhe sua chave de API em locais públicos ou não seguros.
4. **Autorização:** Certifique-se de que o envio de mensagens está de acordo com as políticas de privacidade e autorização dos destinatários.

### Alternativa
Se você não tiver acesso à API do WhatsApp Business, uma alternativa é utilizar serviços de automação, como o Twilio, que oferece integração com o WhatsApp. O processo será semelhante, mas você usará a API e as credenciais fornecidas por esses serviços.

Espero que isso ajude! Se precisar de mais detalhes ou ajuda com a configuração específica, estou à disposição.

 

Se você não tem acesso ao WhatsApp Business API, ainda há maneiras de enviar mensagens pelo WhatsApp usando VBA, mas elas são mais complexas e podem não ser tão confiáveis ou estáveis. Uma alternativa seria usar uma interface web para enviar mensagens via WhatsApp Web. Isso pode ser feito utilizando um navegador automatizado, como o Selenium, junto com VBA.

### Usando Selenium com VBA

Para usar Selenium com VBA, você precisará:

1. **Instalar o Selenium WebDriver:**
   - Baixe o Selenium WebDriver e o driver específico para o navegador que você deseja usar (por exemplo, ChromeDriver para Google Chrome).

2. **Referenciar o Selenium no VBA:**
   - No Excel, vá para `Ferramentas > Referências` e adicione a referência para `Selenium Type Library`.

### Exemplo de Código VBA usando Selenium

Aqui está um exemplo básico de como você pode automatizar o envio de mensagens pelo WhatsApp Web:

1. **Baixe e instale os pré-requisitos:**
   - [Baixe o Selenium WebDriver](https://sites.google.com/a/chromium.org/chromedriver/downloads)
   - Coloque o `chromedriver.exe` em uma pasta de fácil acesso.

2. **Instale a Selenium Type Library:**
   - Use o VBA WebDriver (disponível em [GitHub](https://github.com/florentbr/SeleniumBasic/releases)).

3. **Código VBA para enviar mensagens pelo WhatsApp Web:**

```vba
Sub EnviarWhatsApp()

    Dim driver As New WebDriver
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim matricula As String
    Dim nomeFuncionario As String
    Dim numeroWhatsApp As String
    Dim caminhoArquivo As String
    Dim mensagem As String

    ' Defina a planilha e encontre a última linha com dados
    Set ws = ThisWorkbook.Sheets("Planilha1")
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' Inicialize o driver do Chrome
    driver.Start "Chrome"
    driver.Get "https://web.whatsapp.com"

    ' Esperar que o usuário escaneie o código QR
    MsgBox "Por favor, escaneie o código QR do WhatsApp Web e pressione OK."

    ' Iterar sobre cada linha e enviar mensagem
    For i = 2 To lastRow ' Supondo que a linha 1 contém os cabeçalhos
        matricula = ws.Cells(i, 1).Value
        nomeFuncionario = ws.Cells(i, 2).Value
        numeroWhatsApp = ws.Cells(i, 3).Value
        caminhoArquivo = ws.Cells(i, 4).Value
        mensagem = "Olá " & nomeFuncionario & ", segue seu holerite."

        ' Navegar para o chat do contato
        driver.Get "https://web.whatsapp.com/send?phone=" & numeroWhatsApp & "&text=" & URLEncode(mensagem)
        
        ' Esperar carregar o chat e enviar a mensagem
        Application.Wait Now + TimeValue("00:00:05") ' Espera 5 segundos
        driver.FindElementByCss("span[data-icon='send']").Click

        ' Adicionar um pequeno atraso para evitar problemas
        Application.Wait Now + TimeValue("00:00:02") ' Espera 2 segundos
    Next i

    ' Finalizar o driver
    driver.Quit

    MsgBox "Mensagens enviadas com sucesso!"

End Sub

Function URLEncode(StringVal As String) As String
    Dim TempAns As String
    Dim i As Integer
    Dim Char As String
    
    TempAns = ""
    For i = 1 To Len(StringVal)
        Char = Mid(StringVal, i, 1)
        If Char Like "[A-Za-z0-9-_.!~*'()]" Then
            TempAns = TempAns & Char
        Else
            TempAns = TempAns & "%" & Hex(Asc(Char))
        End If
    Next i
    URLEncode = TempAns
End Function
```

### Nota Importante:
1. **Interação Manual:** Esse método requer interação manual para escanear o código QR do WhatsApp Web.
2. **Confiabilidade:** O Selenium pode ser interrompido se o layout do WhatsApp Web mudar ou se houver verificações de segurança adicionais.
3. **Limitações:** O WhatsApp pode detectar automações e bloquear o envio de mensagens em massa.

Esse método oferece uma solução temporária para enviar mensagens pelo WhatsApp sem usar a API do WhatsApp Business, mas deve ser usado com cautela e consciência das limitações.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...