Lamentamos informá-lo que este artigo perdeu sua relevância. Talvez o serviço descrito não esteja mais disponível ou as condições de trabalho da API tenham mudado.
Agora, o Chat API oferece a messengers Business API mais acessível e automatizada do mercado, com Chat Multiusuário, Construtor de chatbot sem código, aplicação Web e integrador de API com o messengers e outros recursos.
Esta é uma maneira confiável de introduzir mais de 2 bilhões de usuários do messenger em sua empresa ou produto: a interação com o cliente no messengers tornou-se simples.
Obrigado por nos visitar. Com os melhores cumprimentos!
REST API permite receber e enviar mensagens através de uma conta do messengers. Registar a sua conta do messengers API
Parâmetros em solicitações GET transmite pelo query string. Parâmetros em solicitações POST transmite pelo JSON-encoded. O token de autorização é sempre transmitido pelo query string (?token=xxxxxx).
Para cada solicitação, você precisa adicionar um token no GET parâmetro token.
API messengers funciona com base no protocolo messengers WEB e elimina o banimento ao usar bibliotecas do mgp25 e similares. Apesar disso, sua conta pode ser banida pelo sistema anti-spam do messengers após vários cliques do botão "no spam".
Criando bots do messengers em PHP , Python , Node.JS , C# ou Java. Bot em conjunto com o Google Sheets.
Business API documentationObter o status da conta e o código QR para autorização. A nova autorização é necessária apenas no caso de alterar o dispositivo ou pressionar manualmente "Sair de todos os dispositivos" no telefone. Mantenha o aplicativo WhastsApp aberto durante o login.
init | este é o status inicial |
loading | download, repita depois de 30 segundos |
got qr code | Há um código QR e você precisa tirar uma foto dele no aplicativo messengers acessando Menu> messengers Web> Adicionar. O código QR é válido por um minuto.
Um exemplo de exibição de imagens base64 em uma página.
.
Manualmente é mais fácil obter a imagem de um código QR |
.
authenticated | autorização aprovada com sucesso |
{
"accountStatus": "got qr code",
"qrCode": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ....."
}
Link direto para o QR-code em forma de uma imagem, não como base64.
Crie um grupo e envie uma mensagem para o grupo criado. Se o host do iPhone, a presença de todos na lista de contatos é necessária.
O grupo será adicionado à fila de envio e, mais cedo ou mais tarde é criado, mesmo se o telefone estiver desligado da internet ou a falha da autorização.
Atualizado em 2 de outubro de 2018: parâmetro chatId será preenchido se for criado um grupo em seu telefone dentro de 20 segundos.
groupName | Nome do grupo, string, obrigatório. |
phones |
Um conjunto de números de telefone, começando com o código do país. Você não precisa adicionar seu número.
USA example: ['17472822486']. |
messageText | Texto da mensagem, string |
{
"phones": ["17472822486","79680565372"],
"messageText": "Safari is the new IE",
"groupName": "Browsers",
}
Enviando uma mensagem para um bate-papo novo ou existente. A mensagem será adicionada à fila de envio e entregue, mesmo que o telefone esteja desconectado da Internet ou ou a falha da autorização.
Apenas um dos dois parâmetros é necessário para determinar o destino - chatId ou phone.
phone | Obrigatório se não especificado chatId |
Número de telefone que começa com o código do país.
USA example: 17472822486. |
chatId | Obrigatório se não especificado phone | ID de bate-papo da lista de mensagens. Exemplos: [email protected] para mensagens privadas e [email protected] para o grupo. Usado em vez do parâmetro phone |
body | Obrigatório | Texto da mensagem, qualquer string incluindo emoji 🍏 |
{
"phone": "17472822486",
"body": "Hello, world! 🍏"
}
{
"chatId": "[email protected]",
"body": "Hello, world!"
}
{
"sent": true,
"message": "ok"
}
Enviar um arquivo para um bate-papo novo ou existente. A mensagem será adicionada à fila de envio e entregue, mesmo que o telefone esteja desconectado da Internet ou a autorização não seja concluída.
Apenas um dos dois parâmetros é necessário para determinar o destino - chatId ou phone.
phone | Obrigatório se não especificado chatId | Ver POST /sendMessage |
chatId | Obrigatório se não especificado phone | Ver POST /sendMessage |
body | Obrigatório |
Link para o arquivo, por exemplo https://upload.wikimedia.org/wikipedia/ru/3/33/NatureCover2001.jpg
Ou um arquivo em base64, por exemplo data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ... Ou arquivo no campo do formulário |
filename | Obrigatório | O nome do arquivo que será enviado, por exemplo 1.jpg ou hello.xlsx |
caption | Não obrigatório | Texto sob a foto |
{
"chatId": "[email protected]",
"body": "https://upload.wikimedia.org/wikipedia/ru/3/33/NatureCover2001.jpg",
"filename": "cover.jpg"
}
{
"phone": "17472822486",
"body": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAMAAACeL25MAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQwIDc5LjE2MDQ1MSwgMjAxNy8wNS8wNi0wMTowODoyMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkI3OEY5RkZENjkwQjExRTg4NENBQjE1QkFGNzEzOEQ5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkI3OEY5RkZFNjkwQjExRTg4NENBQjE1QkFGNzEzOEQ5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Qjc4RjlGRkI2OTBCMTFFODg0Q0FCMTVCQUY3MTM4RDkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Qjc4RjlGRkM2OTBCMTFFODg0Q0FCMTVCQUY3MTM4RDkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz60+8CVAAAADFBMVEX/zc2ampr/ZmYwMDB/wIlPAAAAGUlEQVR42mJgZmQAQkYGBgYmJiYwwQgQYAAAzQAVpgHCIgAAAABJRU5ErkJggg==",
"filename": "4x4pixel.jpg"
}
{
"sent": true,
"message": "ok"
}
Obter uma lista de mensagens. Para obter apenas mensagens novas transmita um parâmetro lastMessageNumber da última solicitação.
Os arquivos das mensagens têm a garantia de serem armazenados por apenas 10 dias e podem ser excluídos. Faça o download de arquivos de uma só vez, quando receber em seu servidor.
lastMessageNumber | Parâmetro lastMessageNumber da última solicitação |
last | Mostra as últimas 100 mensagens. Se este parâmetro for transmitido, lastMessageNumber será ignorado. |
// GET /messages?lastMessageNumber=99:
{
"messages:" [{
//unique id
"id": "[email protected]_DF38E6A25B42CC8CCE57EC40F",
//text message for type "chat" or link to download the file for "ptt", "image", "audio" and "document"
"body": "Ok!",
//type of the message - "chat" - text, "image" - image, "ptt" - voice, "document" - text document, "audio" - audio file, "call_log" - call
"type": "chat",
//Sender name
"senderName": "Ilya",
//true - outgoing, false - incoming
"fromMe": true,
//Author ID of the message, useful for groups
"author": "[email protected]",
//send time, unix timestamp
"time": 1504208593,
//chat ID
"chatId": "[email protected]",
//sequence number of the message in the database
"messageNumber": 100
}, {
//...
}],
"lastMessageNumber": 199 //next query should be /messages?lastMessageNumber=199
}
Define o URL para receber notificações do webhook sobre as novas mensagens e o status da entrega das mensagens de saída (ack).
webhookUrl | Http ou https URL для получения оповещений. para receber alertas. Para testes, recomendamos o uso de requestb.in. |
{
"set": true,
"webhookUrl": "https://requestb.in/1f9aj261"
}
{ // It has the same JSON payload as /messages has
// Sending to POST JSON body
"messages": [{
//unique id
"id": "[email protected]_DF38E6A25B42CC8CCE57EC40F",
//text message for type "chat" or link to download the file for "ptt", "image", "audio" and "document"
"body": "Ok!",
//type of the message - "chat" - text, "image" - image, "ptt" - voice, "document" - text document, "audio" - audio file, "call_log" - call
"type": "chat",
//Sender name
"senderName": "Ilya",
//true - outgoing, false - incoming
"fromMe": true,
//Author ID of the message, useful for groups
"author": "[email protected]",
//send time, unix timestamp
"time": 1504208593,
//chat ID
"chatId": "[email protected]",
//sequence number of the message in the database
"messageNumber": 100
}, {
//...
}],
"ack": [{//message delivered
"id": "[email protected]_DF38E6A25B42CC8CCE57EC40F",
"queueNumber": 100
"chatId": "[email protected]",
"status": "delivered",
},{//message viewed
"id": "[email protected]_DF38E6A25B42CC8CCE57EC40F",
"queueNumber": 100
"chatId": "[email protected]",
"status": "viewed",
}, {
//...
}],
}
Retorna o atual webhook url.
{
"set": true,
"webhookUrl": "https://requestb.in/1f9aj261"
}
Ativar ou desativar o recebimento de notificações de entrega e ler as mensagens enviadas ack no webhook. O método GET no mesmo endereço também funciona.
ackNotificationsOn | 1 (true) or 0 (false) . |
Sair de sua conta e solicitar um novo código QR.
{
"result": "Logout request sent to messengers"
}
Recarregue sua instância do messengers.
{
"success": true
}
Mostrar uma lista de mensagens que estão na fila para envio, mas ainda não enviadas.
{
"totalMessages":2,
"first100":[
{
"id":1,
"body":"Hey!",
"type":"text",
"chatId":"[email protected]",
"last_try":1528320463436,
"metadata":"{}"
},
]
}
Limpar a fila de envio de mensagens. Esse método é necessário quando você envia aleatoriamente milhares de mensagens seguidas.
{
"message":"Cleared 2 messages",
"messageTextsExample":[
"Hello world",
"Hello world"
]
}