<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos WhatsApp com anexo - Remontti</title>
	<atom:link href="https://blog.remontti.com.br/tag/whatsapp-com-anexo/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.remontti.com.br/tag/whatsapp-com-anexo</link>
	<description>rudimar@remontti</description>
	<lastBuildDate>Wed, 13 Nov 2024 11:29:42 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.remontti.com.br/wp-content/uploads/2024/09/icone-rr-80x80.png</url>
	<title>Arquivos WhatsApp com anexo - Remontti</title>
	<link>https://blog.remontti.com.br/tag/whatsapp-com-anexo</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>RR-WhatsApp-API, simples API para envio de mensagens.</title>
		<link>https://blog.remontti.com.br/8109</link>
					<comments>https://blog.remontti.com.br/8109#comments</comments>
		
		<dc:creator><![CDATA[Rudimar Remontti]]></dc:creator>
		<pubDate>Sun, 20 Oct 2024 18:17:29 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[API REST WhatsApp]]></category>
		<category><![CDATA[API WhatsApp em produção]]></category>
		<category><![CDATA[API WhatsApp node.js]]></category>
		<category><![CDATA[automação de mensagens]]></category>
		<category><![CDATA[automação WhatsApp]]></category>
		<category><![CDATA[chatbot WhatsApp]]></category>
		<category><![CDATA[configurar API WhatsApp]]></category>
		<category><![CDATA[Debian 12]]></category>
		<category><![CDATA[enviar mensagens com anexo]]></category>
		<category><![CDATA[enviar mensagens via API]]></category>
		<category><![CDATA[enviar mensagens WhatsApp]]></category>
		<category><![CDATA[envio de mensagem WhatsApp URL]]></category>
		<category><![CDATA[envio de mensagens em grupos]]></category>
		<category><![CDATA[instalação WhatsApp API]]></category>
		<category><![CDATA[instalar dependências WhatsApp API]]></category>
		<category><![CDATA[integração WhatsApp]]></category>
		<category><![CDATA[mensageria WhatsApp]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[QR code WhatsApp API]]></category>
		<category><![CDATA[sistema operacional Debian]]></category>
		<category><![CDATA[tutorial RR WhatsApp API]]></category>
		<category><![CDATA[tutorial WhatsApp API]]></category>
		<category><![CDATA[WhatsApp API]]></category>
		<category><![CDATA[WhatsApp API com curl]]></category>
		<category><![CDATA[WhatsApp API com formulários]]></category>
		<category><![CDATA[WhatsApp API como serviço]]></category>
		<category><![CDATA[WhatsApp com anexo]]></category>
		<category><![CDATA[whatsapp-web.js]]></category>
		<guid isPermaLink="false">https://blog.remontti.com.br/?p=8109</guid>

					<description><![CDATA[<p>Hoje acordei querendo me incomodar e pensei vou fazer a &#8220;droga&#8221; da API de Whatsapp que tanto me pedem (mesmo que ninguém me doa bo***ta nenhuma, é foi um desabafo), pois quem me conhece&#46;&#46;&#46;</p>
<p>O post <a href="https://blog.remontti.com.br/8109">RR-WhatsApp-API, simples API para envio de mensagens.</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2024/10/capa-rr-whatsapp-api.webp" alt="" width="1792" height="1024" class="alignnone size-full wp-image-8122" srcset="https://blog.remontti.com.br/wp-content/uploads/2024/10/capa-rr-whatsapp-api.webp 1792w, https://blog.remontti.com.br/wp-content/uploads/2024/10/capa-rr-whatsapp-api-300x171.webp 300w, https://blog.remontti.com.br/wp-content/uploads/2024/10/capa-rr-whatsapp-api-1024x585.webp 1024w, https://blog.remontti.com.br/wp-content/uploads/2024/10/capa-rr-whatsapp-api-768x439.webp 768w, https://blog.remontti.com.br/wp-content/uploads/2024/10/capa-rr-whatsapp-api-1536x878.webp 1536w" sizes="(max-width: 1792px) 100vw, 1792px" /></p>
<p>Hoje acordei querendo me incomodar e pensei vou fazer a &#8220;droga&#8221; da API de Whatsapp que tanto me pedem (<del datetime="2024-10-20T21:08:00+00:00">mesmo que ninguém me doa bo***ta nenhuma, é foi um desabafo</del>), pois quem me conhece sabe que odeio o Whatsapp, mas vamos lá, eu e o GPT tentamos fazer algo simples para enviar mensagens do WhatsApp utilizando o projeto <strong><a href="https://wwebjs.dev/">whatsapp-web.js</a></strong>. </p>
<p>Bom minha ideia inicial era poder enviar mensagem chamando uma URL, depois fiquei enjoado e fiz uma pagina com um formulário para o envio até de anexo (olha só e luxuria!) então essa P***a de API possibilita o envio de mensagens com ou sem anexos, tanto para números individuais quanto para grupos. A aplicação pode ser utilizada via interface web ou diretamente através de endpoints REST.</p>
<p>Github: <a href="https://github.com/remontti/RR-WhatsApp-API" rel="noopener" target="_blank"><strong>RR-WhatsApp-API</strong></a></p>
<h4>Requisitos</h4>
<p>Sistema Operacional: Debian 12</p>
<p>Atualize os pacotes existentes:</p>
<pre class="remontti-code"># apt update ; apt upgrade -y</pre>
<h3>Instalação</h3>
<p>Instale as dependências necessárias para o `puppeteer` e outras bibliotecas:</p>
<pre class="remontti-code"># apt install -y \
  curl wget nano vim git nodejs npm psmisc \
  ca-certificates fonts-liberation libappindicator3-1 \
  libatk-bridge2.0-0 libcups2 libdrm-dev libgbm-dev libgtk-3-0 \
  libnspr4 libnss3 libxss1 lsb-release xdg-utils libasound2 libdrm2 \
  libxcomposite1 libxrandr2 libgbm1
</pre>
<p>Crie um usuário para a aplicação e clone o repositório, e ajuste o local dos arquivos:</p>
<pre class="remontti-code"># adduser --home /opt/RR-WhatsApp-API rr-whatsapp-api
$ su - rr-whatsapp-api
$ git clone https://github.com/remontti/RR-WhatsApp-API.git
$ mv /opt/RR-WhatsApp-API/RR-WhatsApp-API/* /opt/RR-WhatsApp-API/
$ rm -rf /opt/RR-WhatsApp-API/RR-WhatsApp-API</pre>
<p>Instale as dependências do projeto:</p>
<pre class="remontti-code">$ cd /opt/RR-WhatsApp-API/
$ npm install</pre>
<p>Altere o arquivo `index.js` para configurar os IPs autorizados (allowedIPs) que terão acesso à API:</p>
<pre class="remontti-code">$ vim /opt/RR-WhatsApp-API/index.js</pre>
<p>Exemplo de configuração de IPs permitidos:</p>
<pre class="remontti-code">const allowedIPs = [
    &#039;192.168.0.0/16&#039;,
    &#039;127.0.0.1&#039;,
    &#039;::1&#039;,
];</pre>
<p>Se desejar, altere também a porta da aplicação:</p>
<pre class="remontti-code">const port = 3001;</pre>
<p>Para iniciar a aplicação, execute:</p>
<pre class="remontti-code">$ node index.js</pre>
<p>A saída será semelhante a: API rodando em http://0.0.0.0:3001</p>
<p>Ctrl+c para cancelar, vamos colocar para executar a aplicação como um serviço no Debian 12, siga os passos abaixo:<br />
$ exit</p>
<pre class="remontti-code"># nano /etc/systemd/system/rr-whatsapp-api.service</pre>
<p>Adicione:</p>
<pre class="remontti-code">[Unit]
Description=RR WhatsApp API
After=network.target

[Service]
ExecStart=/usr/bin/node /opt/RR-WhatsApp-API/index.js
WorkingDirectory=/opt/RR-WhatsApp-API
Restart=always
User=rr-whatsapp-api
Environment=NODE_ENV=production
ExecReload=/usr/bin/killall -9 rr-whatsapp-api
KillMode=process
RestartSec=10

[Install]
WantedBy=multi-user.target</pre>
<p>Recarregar o systemd e Iniciar o Serviço</p>
<pre class="remontti-code"># systemctl daemon-reload
# systemctl enable rr-whatsapp-api
# systemctl start rr-whatsapp-api
</pre>
<p>Verificar o Status do Serviço</p>
<pre class="remontti-code"># systemctl status rr-whatsapp-api.service</pre>
<h2>Uso</h2>
<h3>1. Utilizando o Formulário Web</h3>
<p><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2024/10/img.png" alt="" width="1471" height="748" class="alignnone size-full wp-image-8126" srcset="https://blog.remontti.com.br/wp-content/uploads/2024/10/img.png 1471w, https://blog.remontti.com.br/wp-content/uploads/2024/10/img-300x153.png 300w, https://blog.remontti.com.br/wp-content/uploads/2024/10/img-1024x521.png 1024w, https://blog.remontti.com.br/wp-content/uploads/2024/10/img-768x391.png 768w" sizes="(max-width: 1471px) 100vw, 1471px" /></p>
<h4>1.1. Acessar a Interface Web</h4>
<p>No seu navegador, acesse: <strong>http://SEU_SERVIDOR:3001</strong></p>
<p>Substitua <code>SEU_SERVIDOR</code> pelo endereço IP ou nome de domínio do seu servidor.</p>
<h4>1.2. Conectar ao WhatsApp</h4>
<ul>
<li>Na interface web, se não estiver conectado, você verá a opção para <strong>Conectar</strong>.</li>
<li>Clique no botão <strong>Conectar</strong>.</li>
<li>Um modal será aberto exibindo o QR Code.</li>
<li>Escaneie o QR Code com o aplicativo do WhatsApp no seu dispositivo móvel:
<ul>
<li>Abra o WhatsApp.</li>
<li>Vá em <strong>Configurações</strong> &gt; <strong>Aparelhos Conectados</strong> &gt; <strong>Conectar um Aparelho</strong>.</li>
<li>Escaneie o QR Code exibido na tela.</li>
</ul>
</li>
<li>Após a autenticação, a página será atualizada e mostrará o status <strong>Conectado ao WhatsApp</strong>.</li>
</ul>
<h4>1.3. Enviar Mensagens</h4>
<ul>
<li>Preencha o formulário:
<ul>
<li><strong>Número(s) ou Grupo(s):</strong> Insira os números de telefone (com código do país e DDD) ou nomes dos grupos, separados por vírgula. Se notar que deu mensagem enviada, mas não foi, provavelmente vai ter que tirar o &#8220;9 da frente&#8221;, essa M de whatsapp é zoado. Exemplo:<br />
               +5511999999999, +552188888888, Nome do Grupo
            </li>
<li><strong>Mensagem:</strong> Digite a mensagem que deseja enviar.</li>
<li><strong>Selecionar Imagem/Documento (Opcional):</strong> Se desejar enviar um anexo, selecione o arquivo.</li>
</ul>
</li>
<li>Clique em <strong>Enviar Mensagem</strong>.</li>
<li>Um modal aparecerá informando o sucesso ou erro do envio.</li>
</ul>
<p>OBS: A primeira mensagem após autenticar teve uma vez que chegou a levar 4 min para enviar. mas depois ficou tudo certo. </p>
<h4>1.4. Desconectar do WhatsApp</h4>
<ul>
<li>Na interface web, clique no botão <strong>Desconectar</strong>.</li>
<li>Você receberá uma confirmação de que foi desconectado.</li>
</ul>
<h3>2. Utilizando a API Diretamente</h3>
<h4>2.1. Verificar o Status da Conexão</h4>
<p>Faça uma requisição <strong>GET</strong> para:<br />
<strong>http://SEU_SERVIDOR:3001/api/status</strong></p>
<p><strong>Resposta:</strong></p>
<ul>
<li>Conectado:
<pre class="remontti-code">{
  &quot;status&quot;: &quot;connected&quot;,
  &quot;number&quot;: &quot;552199999999&quot;
}</pre>
</li>
<li>Desconectado:
<pre class="remontti-code">{
  &quot;status&quot;: &quot;disconnected&quot;
}</pre>
</li>
</ul>
<h4>2.2. Obter o QR Code</h4>
<p>Para autenticar o cliente sem usar a interface web, você pode obter o QR Code via API.</p>
<p>Faça uma requisição <strong>GET</strong> para:<br />
<strong>http://SEU_SERVIDOR:3001/api/qr</strong></p>
<ul>
<li><strong>Se não estiver conectado:</strong>
<ul>
<li>Você receberá a imagem do QR Code.</li>
<li>Escaneie essa imagem usando o aplicativo do WhatsApp.</li>
</ul>
</li>
<li><strong>Se já estiver conectado:</strong>
<pre class="remontti-code">{
  &quot;status&quot;: &quot;connected&quot;,
  &quot;message&quot;: &quot;Cliente já está conectado&quot;
}</pre>
</li>
</ul>
<h4>2.3. Enviar Mensagens via API</h4>
<h5>2.3.1. Enviar Mensagem Sem Anexo</h5>
<p>Faça uma requisição <strong>POST</strong> para:<br />
<strong>http://SEU_SERVIDOR:3001/api/send</strong></p>
<p><strong>Parâmetros do Formulário (multipart/form-data):</strong></p>
<ul>
<li><strong>recipients:</strong> Número(s) ou Grupo(s) separados por vírgula.</li>
<li><strong>message:</strong> Texto da mensagem.</li>
</ul>
<p><strong>Exemplo usando <code>curl</code>:</strong></p>
<pre class="remontti-code">curl -X POST http://localhost:3001/api/send \
  -F &#039;recipients=+552199999999,Grupo de Amigos&#039; \
  -F &#039;message=Olá, esta é uma mensagem de teste!&#039;</pre>
<h5>2.3.2. Enviar Mensagem Com Anexo</h5>
<p>Além dos parâmetros anteriores, inclua o campo <strong>file</strong> com o arquivo.<br />
<strong>Exemplo usando <code>curl</code>:</strong></p>
<pre class="remontti-code">curl -X POST http://localhost:3001/api/send \
  -F &#039;recipients=+552199999999&#039; \
  -F &#039;message=Aqui está o documento solicitado.&#039; \
  -F &#039;file=@/opt/o/arquivo.pdf&#039;</pre>
<h5>2.3.3. Enviar Mensagem via URL</h5>
<p><strong>Atenção:</strong> Este método é menos seguro e deve ser usado apenas para testes.</p>
<p>Faça uma requisição <strong>GET</strong> para:<br />
<strong>http://SEU_SERVIDOR:3001/api/sendMessage/:recipient/:message</strong></p>
<ul>
<li><strong>:recipient</strong>: Número sem caracteres especiais ou nome do grupo (URL-encoded).</li>
<li><strong>:message</strong>: Mensagem (URL-encoded).</li>
</ul>
<p><strong>Exemplo:</strong><br />
Enviar &#8220;Teste via GET&#8221; para o número +55 21 99999-9999:<br />
<strong>http://SEU_SERVIDOR:3001/api/sendMessage/5511912345678/Teste%20via%20GET</strong></p>
<p>Enviar &#8220;Aviso importante&#8221; para o grupo &#8220;Equipe&#8221;:<br />
<strong>http://SEU_SERVIDOR:3001/api/sendMessage/Equipe/Aviso%20importante</strong></p>
<h4>2.4. Desconectar do WhatsApp via API</h4>
<p>Faça uma requisição <strong>GET</strong> para:<br />
<strong>http://SEU_SERVIDOR:3001/api/disconnect</strong></p>
<hr>
<p><strong>Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!</strong><br />
<a href="https://blog.remontti.com.br/doar"><img decoding="async" src="https://blog.remontti.com.br/wp-content/uploads/2019/07/quero-doar-remontti.png" /></a></p>
<p>Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato <a href="https://blog.remontti.com.br/meucontato" rel="noopener noreferrer" target="_blank">clique aqui.</a></p>
<p>O post <a href="https://blog.remontti.com.br/8109">RR-WhatsApp-API, simples API para envio de mensagens.</a> apareceu primeiro em <a href="https://blog.remontti.com.br">Remontti</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.remontti.com.br/8109/feed</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
			</item>
	</channel>
</rss>
