Sumário
Integração
Neste post vamos lhe mostrar com é fácil integrar seu sistema ao nosso.
Nossa API é do tipo REST, então você já deve saber mais ou menos o que esperar não é mesmo?
Bom então vamos lá...
Limites de requisições / Rate Limit
Devido a questões de relacionamento com o WhatsApp nosso sistema envia no máximo uma mensagem a cada 5 segundos, então configure seu sistema para fazer uma requisição a cada 5 segundos para o nosso sistema, ao exceder este limite suas requisições poderão ser barradas com o código HTTP 429 Too Many Requests
Mensagens
Enviar mensagem
POST https://mkmsgs.iungo.space/enviar-mensagem/[SLUG]
Onde
[SLUG]
é a identificação do cliente e deve ser alterado de acordo com a informação passada no nosso Painel em Configurações
Cada conta no nosso sistema possuí um Slug único.
POST https://mkmsgs.iungo.space/enviar-mensagem/[SLUG]
Headers
Header | Obrigatório | Valores | Descrição |
---|---|---|---|
Content-Type | Sim | application/json | Define que o corpo da requisição é do tipo JSON |
Authorization | Sim | Bearer [TOKEN] | Informa o Bearer token para permitir o envio de mensagens |
Accept | Não | application/json | Define o tipo do corpo da resposta, caso não seja informado a resposta será do tipo text/plain |
POST https://mkmsgs.iungo.space/enviar-mensagem/[SLUG]
Content-Type: application/json
Accept: application/json
Authorization: Bearer [TOKEN]
Corpo da requisição
O corpo da requisição deverá ser no formato JSON e deverá conter os seguintes dados:
Chave | Obrigatório | Tipo | Limite | Descrição |
---|---|---|---|---|
destinatario | Sim | inteiro | 15 digitos | Número de WhatsApp que receberá a mensagem |
mensagem | Sim | texto | 65 mil caracteres | Conteúdo da mensagem que será enviada |
POST https://mkmsgs.iungo.space/enviar-mensagem/[SLUG]
Content-Type: application/json
Accept: application/json
Authorization: Bearer [TOKEN]
{
"destinatario": 5500111112222,
"mensagem": "Olá mundo"
}
Exemplos na sua linguagem
HTTP
POST https://mkmsgs.iungo.space/enviar-mensagem/[SLUG]
Content-Type: application/json
Accept: application/json
Authorization: Bearer [TOKEN]
{
"destinatario": 5500111112222,
"mensagem": "Olá mundo"
}
GoLang
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
url := "https://mkmsgs.iungo.space/enviar-mensagem/[SLUG]"
payload := map[string]string{
"destinatario": "5500111112222",
"mensagem": "Olá mundo",
}
jsonPayload, err := json.Marshal(payload)
if err != nil {
panic(err)
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonPayload))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Accept", "application/json")
req.Header.Set("Authorization", "Bearer [TOKEN]")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Status:", resp.Status)
}
PHP
<?php
$slug = 'seu-slug-aqui'; // Substitua pelo seu slug real
$token = 'seu-token-aqui'; // Substitua pelo seu token real
$url = 'https://mkmsgs.iungo.space/enviar-mensagem/' . $slug;
$data = [
'destinatario' => 5500111112222,
'mensagem' => 'Olá mundo'
];
$headers = [
'Content-Type: application/json',
'Accept: application/json',
'Authorization: Bearer ' . $token
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if ($response === false) {
echo 'Erro na requisição: ' . curl_error($ch);
} else {
echo 'Resposta: ' . $response;
}
curl_close($ch);
?>
cURL
curl -X POST https://mkmsgs.iungo.space/enviar-mensagem/[SLUG] \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer [TOKEN]" \
-d '{
"destinatario": 5500111112222,
"mensagem": "Olá mundo"
}'
JavaScript
Atenção!!!
Embora estamos dando um exemplo com JavaScript para frontend, não utilize a integração com o frontend da sua aplicação, faça toda comunicação com nossa API através do backend da sua aplicação para não expor o seu token de acesso.
const url = 'https://mkmsgs.iungo.space/enviar-mensagem/[SLUG]';
const data = {
destinatario: 5500111112222,
mensagem: 'Olá mundo'
};
const headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer [TOKEN]'
};
fetch(url, {
method: 'POST',
headers: headers,
body: JSON.stringify(data)
})
.then(response => {
if (!response.ok) {
throw new Error('Erro na requisição.');
}
return response.json();
})
.then(data => {
console.log('Resposta:', data);
})
.catch(error => {
console.error('Erro:', error);
});
Ruby
require 'net/http'
require 'json'
# Substitua pelo seu token real
token = 'seu-token-aqui'
# Substitua pelo seu slug real
slug = 'seu-slug-aqui'
url = URI.parse("https://mkmsgs.iungo.space/enviar-mensagem/#{slug}")
http = Net::HTTP.new(url.host, url.port)
data = {
destinatario: 5500111112222,
mensagem: 'Olá mundo'
}
request = Net::HTTP::Post.new(url.path)
request['Content-Type'] = 'application/json'
request['Accept'] = 'application/json'
request['Authorization'] = "Bearer #{token}"
request.body = data.to_json
response = http.request(request)
if response.is_a?(Net::HTTPSuccess)
response_data = JSON.parse(response.body)
puts 'Resposta:', response_data
else
puts 'Erro na requisição:', response.code, response.message
end
C++
#include <iostream>
#include <string>
#include <curl/curl.h>
struct Dados {
int destinatario;
std::string mensagem;
};
int main() {
CURL *curl;
CURLcode res;
std::string token = "seu-token-aqui"; // Substitua pelo seu token real
std::string slug = "seu-slug-aqui"; // Substitua pelo seu slug real
std::string url = ("http://mkmsgs.notebook.lo/enviar-mensagem/" + slug).c_str();
Dados data;
data.destinatario = 5500111112222;
data.mensagem = "Olá mundo";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
headers = curl_slist_append(headers, "Accept: application/json");
headers = curl_slist_append(headers, ("Authorization: Bearer " + token).c_str());
curl = curl_easy_init();
if (curl) {
std::string data_str = "destinatario=" + std::to_string(data.destinatario) + "&mensagem=" + data.mensagem;
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data_str.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro na requisição cURL: " << curl_easy_strerror(res) << std::endl;
} else {
long response_code;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
if (response_code == 200) {
std::cout << "Resposta: " << std::endl;
} else {
std::cerr << "Erro na requisição: " << response_code << std::endl;
}
}
curl_easy_cleanup(curl);
}
curl_slist_free_all(headers);
return 0;
}
NodeJS / Axios
const axios = require('axios');
const token = 'seu-token-aqui'; // Substitua pelo seu token real
const slug = 'seu-slug-aqui'; // Substitua pelo seu slug real
const url = 'https://mkmsgs.iungo.space/enviar-mensagem/' + slug;
const data = {
destinatario: 5500111112222,
mensagem: 'Olá mundo'
};
const headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${token}`
};
axios.post(url, data, {headers})
.then(response => {
console.log('Resposta:', response.data);
})
.catch(error => {
console.error('Erro na requisição:', error);
});
Python
import requests
import json
token = 'seu-token-aqui' # Substitua pelo seu token real
slug = 'seu-slug-aqui' # Substitua pelo seu slug real
url = f'https://mkmsgs.iungo.space/enviar-mensagem/{slug}'
data = {
'destinatario': 5500111112222,
'mensagem': 'Olá mundo'
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': f'Bearer {token}'
}
try:
response = requests.post(url, data=json.dumps(data), headers=headers)
if response.status_code == 200:
response_data = response.json()
print('Resposta:', response_data)
else:
print('Erro na requisição:', response.status_code)
except Exception as e:
print('Erro na requisição:', str(e))
Java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
try {
String token = "seu-token-aqui"; // Substitua pelo seu token real
String slug = "seu-slug-aqui"; // Substitua pelo seu slug real
String url = "https://mkmsgs.iungo.space/enviar-mensagem/" + slug;
JSONObject data = new JSONObject();
data.put("destinatario", 5500111112222L);
data.put("mensagem", "Olá mundo");
// Configurar a conexão
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("Authorization", "Bearer " + token);
// Habilitar envio de dados no corpo da requisição
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(data.toString());
wr.flush();
wr.close();
// Obter a resposta
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// Imprimir a resposta
System.out.println("Resposta: " + response.toString());
} else {
System.out.println("Erro na requisição: " + responseCode);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Aviso
Esses exemplos foram criados por inteligência artificial, os mesmos devem ser revisados por você.
Respostas
Corpo de resposta
Quando o cabeçalho Accept
for definido como application/json
o corpo da resposta será um JSON com a seguinte estrutura:
Chave | Tipo | Descrição |
---|---|---|
status | boolean | Em caso de sucesso será true em caso de falha false |
msg | texto | Conterá o aviso de sucesso ou o motivo do erro |
Códigos HTTP de resposta
Status code | Status | Descrição |
---|---|---|
201 | Created | Sua requisição foi executada com sucesso e sua mensagem está na fila de envio |
400 | Bad Request | Alguma informação está errada, verifique detalhes no corpo da resposta |
404 | Not Found | Caso você obtenha o código 404 provavelmente a URL ou endpoint estão errados |
429 | Too Many Requests | Seu sistema está fazendo requisições de forma excessiva, faça uma requisição a cada 5 segundos |
Exemplos de resposta
application/json
{
"status": true,
"msg": "OK! Mensagem adicionada a fila de envio."
}
{
"status": false,
"msg": "Número telefônico inválido, número iniciado em zero pelas regras da Anatel são 0300, 0500, 0800 e 0900."
}
text/plain
OK! Mensagem adicionada a fila de envio.
Número telefônico inválido, número iniciado em zero pelas regras da Anatel são 0300, 0500, 0800 e 0900.