introduzione
In questo articolo creeremo semplici esempi per inviare messaggi tramite l’API di WhatsApp utilizzando c#.
Inizialmente, devi assicurarti che la libreria RestSharp dell’ultima versione: 108.0.1 sia pronta e perché utilizzeremo questa libreria in questo articolo per inviare messaggi a Ultramsg Gateway.
rapido esempio per l’API di WhatsApp utilizzando 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 il codice precedente viene eseguito e se il messaggio viene inviato correttamente, la risposta sarà così:
{"sent":"true","message":"ok","id":497}
Invia immagine
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);
}
}
}
Invia 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);
}
}
}
Invia audio
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);
}
}
}
Invia voce
È possibile inviare una registrazione audio ppt al numero di telefono o al gruppo, ma WhatsApp è sensibile a questa estensione, è necessario essere in formato OGG e i codec dovrebbero essere gli opus, Per ulteriori informazioni, è possibile consultare questo articolo.
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);
}
}
}
Invia video
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);
}
}
}
Invia il 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);
}
}
}
Invia contatto
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);
}
}
}
Invia posizione
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);
}
}
}
Invia 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);
}
}
}
Esempio per inviare un’immagine come Base64 utilizzando RestSharp
Per inviare immagini e documenti da un PC o un server locale, puoi convertire i file in formato base64 e inviarli facilmente tramite il seguente codice:
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);
}
}
}
Esempio per inviare un documento come Base64 utilizzando 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 WhatsApp utilizzando C# con WebClient
Non è consigliato per nuovi lavori ma è estremamente facile, se devi fare una richiesta http in modo sincrono,WebClient
può ancora essere utilizzato.
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);
}
///////////
}
}
Esempio per inviare documenti come 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);
}
///////////
}
}
infine, puoi vedere la documentazione completa dell’API di Whatsapp e le domande frequenti .