introdução
Neste artigo, criaremos exemplos simples para enviar mensagens via API do WhatsApp usando c#.
Inicialmente, você deve certificar-se de que a biblioteca RestSharp última Ver: 108.0.1 esteja pronta e porque usaremos essa biblioteca neste artigo para enviar mensagens para o Gateway Ultramsg.
Exemplo rápido para API do WhatsApp usando C#
using System;
using RestSharp;
using System.Threading.Tasks;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
string message = "WhatsApp API on UltraMsg.com works good";
var url = "https://api.ultramsg.com/" + instanceId + "/messages/chat";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("body", message);
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
Quando o código anterior for executado, e se a mensagem for enviada com sucesso, a resposta será assim:
{"sent":"true","message":"ok","id":497}
Enviar imagem
using System;
using RestSharp;
using System.Threading.Tasks;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
var url = "https://api.ultramsg.com/" + instanceId + "/messages/image";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("image", "https://file-example.s3-accelerate.amazonaws.com/images/test.jpg");
request.AddParameter("caption", "caption text");
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
Enviar documento
using System;
using RestSharp;
using System.Threading.Tasks;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
var url = "https://api.ultramsg.com/" + instanceId + "/messages/document";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("filename", "test.pdf");
request.AddParameter("document", "https://file-example.s3-accelerate.amazonaws.com/documents/cv.pdf");
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
Enviar áudio
using System;
using RestSharp;
using System.Threading.Tasks;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
var url = "https://api.ultramsg.com/" + instanceId + "/messages/audio";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("audio", "https://file-example.s3-accelerate.amazonaws.com/audio/2.mp3");
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
Enviar voz
Pode enviar uma gravação áudio ppt para o número de telefone ou grupo, mas o WhatsApp é sensível a esta extensão, tem de estar em formato OGG e os codecs devem ser a obra, Para mais informações, pode consultar este artigo.
using System;
using RestSharp;
using System.Threading.Tasks;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
var url = "https://api.ultramsg.com/" + instanceId + "/messages/voice";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("audio", "https://file-example.s3-accelerate.amazonaws.com/voice/oog_example.ogg");
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
Enviar vídeo
using System;
using RestSharp;
using System.Threading.Tasks;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
var url = "https://api.ultramsg.com/" + instanceId + "/messages/video";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("video", "https://file-example.s3-accelerate.amazonaws.com/video/test.mp4");
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
Enviar Link
using System;
using RestSharp;
using System.Threading.Tasks;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
var url = "https://api.ultramsg.com/" + instanceId + "/messages/link";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("link", "https://en.wikipedia.org/wiki/COVID-19");
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
Enviar contato
using System;
using RestSharp;
using System.Threading.Tasks;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
var url = "https://api.ultramsg.com/" + instanceId + "/messages/contact";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("contact", "[email protected]");
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
Enviar localização
using System;
using RestSharp;
using System.Threading.Tasks;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
var url = "https://api.ultramsg.com/" + instanceId + "/messages/location";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("address", "ABC company \n Sixth floor , office 38");
request.AddParameter("lat", "25.197197");
request.AddParameter("lng", "55.2721877");
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
Enviar Vcard
using System;
using RestSharp;
using System.Threading.Tasks;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
var url = "https://api.ultramsg.com/" + instanceId + "/messages/vcard";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("vcard", " BEGIN:VCARD\nVERSION:3.0\nN:lastname;firstname\nFN:firstname lastname\nTEL;TYPE=CELL;waid=14000000001:14000000002\nNICKNAME:nickname\nBDAY:01.01.1987\nX-GENDER:M\nNOTE:note\nADR;TYPE=home:;;;;;;\nADR;TYPE=work_:;;;;;;\nEND:VCARD");
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
Exemplo para enviar imagem como Base64 usando RestSharp
Para enviar imagens e documentos de um PC ou servidor local, você pode converter os arquivos para o formato base64 e enviá-los facilmente através do seguinte código:
using System;
using RestSharp;
using System.Threading.Tasks;
using System.IO;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
byte[] AsBytes = File.ReadAllBytes("test.jpeg");
String AsBase64String = Convert.ToBase64String(AsBytes);
var url = "https://api.ultramsg.com/" + instanceId + "/messages/image";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("image", AsBase64String);
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
Exemplo para enviar documento como Base64 usando RestSharp
using System;
using RestSharp;
using System.Threading.Tasks;
using System.IO;
namespace test
{
class Program
{
static async Task Main(string[] args)
{
string instanceId = "instance950"; // your instanceId
string token = "yourtoken"; //instance Token
string mobile = "14155552671";
byte[] AsBytes = File.ReadAllBytes("test.pdf");
String AsBase64String = Convert.ToBase64String(AsBytes);
var url = "https://api.ultramsg.com/" + instanceId + "/messages/document";
var client = new RestClient(url);
var request = new RestRequest(url, Method.Post);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddParameter("token", token);
request.AddParameter("to", mobile);
request.AddParameter("filename", "WhatsApp-API.pdf");
request.AddParameter("document", AsBase64String);
RestResponse response = await client.ExecuteAsync(request);
var output = response.Content;
Console.WriteLine(output);
}
}
}
API do WhatsApp usando C# com WebClient
não é recomendado para novos trabalhos, mas é extremamente fácil, se você precisar fazer uma solicitação http de forma síncrona,WebClient
ainda pode ser usado.
using System;
using System.Collections.Specialized;
using System.Net;
using System.Text;
public class Program
{
public static void Main()
{
using (var wb = new WebClient())
{
var data = new NameValueCollection();
data["token"] = "95041eyo9eqixrsi";
data["body"] = "WhatsApp API on UltraMsg.com works good";
data["to"] = "14155552671";
var response =
wb
.UploadValues("https://api.ultramsg.com/instance950/messages/chat",
"POST",
data);
string responseInString = Encoding.UTF8.GetString(response);
Console.WriteLine (responseInString);
}
///////////
}
}
Exemplo para enviar documentos como Base64 usando c# e WebClient
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.IO;
using System.Net;
using System.Text;
using System.Web;
public class Program
{
public static void Main()
{
using (var wb = new WebClient())
{
byte[] AsBytes = File.ReadAllBytes("1.pdf");
String AsBase64String = Convert.ToBase64String(AsBytes);
var data = new NameValueCollection();
data["token"] = "95041eyo9eqixrsi";
data["to"] = "14155552671";
data["document"] = AsBase64String;
data["filename"] = "a.pdf";
var response =
wb
.UploadValues("https://api.ultramsg.com/instance950/messages/document",
"POST",
data);
string responseInString = Encoding.UTF8.GetString(response);
Console.WriteLine (responseInString);
}
///////////
}
}
finalmente, você pode ver a documentação completa da API do Whatsapp e as perguntas frequentes .