Preciso de uma ajuda para configurar a API do Z-API com o Latromi via C#. Seguindo a documentação da ferramenta não funcionou.
Exemplos:
– Código em C# para conectar a API e encaminhar mensagens:
var client = new RestClient("https://api.z-api.io/instances/SUA_INSTANCIA/token/SEU_TOKEN/send-text");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddHeader("client-token", "{{security-token}}");
request.AddParameter("undefined", "{\"phone\": \"5511999998888\", \"message\": \"Welcome to *Z-API*\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
– Enviar link na mensagem.
{
"phone": "5511999998888",
"message": "Aqui você coloca um texto sobre o site, atenção esse texto preciso ter o link que será enviado no final da mensagem! ",
"image": "link com a imagem",
"linkUrl": "http s://z-api.io",
"title": "Z-API",
"linkDescription": "Integração com o whatsapp"
}
using System;
using System.IO;
using System.Reflection;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using Newtonsoft.Json;
using System.Text;
using LATROMI.Extensions;
// Nome da sua instância
var instance = "SUA_INSTANCIA";
// Captura os valores dos campos da tela.
// Campos: security_token(TextBox), phone_number(TextBox), message(TextBox)
var token = (string)Fields["security_token"].Value;
var phone = (string)Fields["phone_number"].Value;
var message = (string)Fields["message"].Value;
// Monta a URL
var url = "https://api.z-api.io/instances/" + instance + "/token/" + token + "/send-text";
// Declara HttpClient para fazer o envio para a WebAPI
using (HttpClient client = new HttpClient())
{
// Adiciona cabeçaho HTTP com o token
client.DefaultRequestHeaders.Add("client-token", token);
// Estrutura de dados que será enviada
var requestData = new {
phone = phone,
message = message
};
// Conteudo do corpo da requisição
var requestContent = new StringContent(JsonConvert.SerializeObject(requestData), Encoding.UTF8, "application/json");
// Faz a solicitação POST para o endpoint
var response = client.PostAsync(url, requestContent).Result;
// Varifica se a solicitação foi bem-sucedida
int statusCode = (int)response.StatusCode;
// Faz a leitura do resultado da requisição
var resultJson = response.Content.ReadAsStringAsync().Result;
// 200 = OK
if (200.Equals(statusCode))
{
// Deserialize o JSON com a biblioteca NewtonSoft usandoo tipo "dynamic"
var result = JsonConvert.DeserializeObject<dynamic>(resultJson);
// Manda resultado para os campos da tela
// Campos: zaapId(TextBox), messageId(TextBox)
Fields["zaapId"].Value = (string)result.zaapId;
Fields["messageId"].Value = (string)result.messageId;
}
// Manda o código de retorno e o JSON de resposta para os campos da tela
// Campos: status_code(NumericTextBox), messageId(TextBox)
Fields["status_code"].Value = statusCode;
Fields["result"].Value = resultJson;
}