Como enviar a API do WhatsApp usando c#

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);
        }
    }
}

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 .