How to send messages to a WhatsApp group in C# using Visual Studio 2019

Using the WhatsMate WA Gateway REST API



This article shows you how to send a message to a WhatsApp group in Microsoft’s .net language: C# using Visual Studio 2019.

If you are using Visual Studio 2022, please read this tutorial instead.

You MUST obtain the secret gateway number by signing up for a Forever Green account before you can send a message to a WhatsApp group. Instructions are available on the official site.

To send a WhatsApp group message in C#, do this:

  1. Create a new group with a unique name. The API won’t work if it’s not unique.
    • Create a new WhatsApp group

  2. Add the secret gateway to the group.
    • Name the WhatsApp group

  3. Say “Hi” to the group to let the gateway recognize the new group.
  4. Copy the following source code to the main class in your Console Application in Visual Studio.
    using System;
    using System.Net;
    using System.Web.Script.Serialization; // requires the reference 'System.Web.Extensions'
    using System.IO;
    using System.Text;
    class WaMessageSender
    {
    // TODO: Replace the following with your gateway instance ID, Forever Green client ID and secret:
    private static string INSTANCE_ID = "YOUR_INSTANCE_ID_HERE";
    private static string CLIENT_ID = "YOUR_CLIENT_ID_HERE";
    private static string CLIENT_SECRET = "YOUR_CLIENT_SECRET_HERE";
    private static string GROUP_API_URL = "http://api.whatsmate.net/v3/whatsapp/group/text/message/" + INSTANCE_ID;
    static void Main(string[] args)
    {
    WaMessageSender msgSender = new WaMessageSender();
    string groupAdmin = "12025550108"; // TODO: Specify the WhatsApp number of the group creator, including the country code
    string groupName = "Happy Club"; // TODO: Specify the name of the group
    string message = "Guys, let's party tonight!"; // TODO: Specify the content of your message
    msgSender.sendGroupMessage(groupAdmin, groupName, message);
    Console.WriteLine("Press Enter to exit.");
    Console.ReadLine();
    }
    public bool sendGroupMessage(string groupAdmin, string groupName, string message)
    {
    bool success = true;
    try
    {
    using (WebClient client = new WebClient())
    {
    client.Headers[HttpRequestHeader.ContentType] = "application/json";
    client.Headers["X-WM-CLIENT-ID"] = CLIENT_ID;
    client.Headers["X-WM-CLIENT-SECRET"] = CLIENT_SECRET;
    GroupPayload groupPayloadObj = new GroupPayload() { group_admin = groupAdmin, group_name = groupName, message = message };
    string postData = (new JavaScriptSerializer()).Serialize(groupPayloadObj);
    client.Encoding = Encoding.UTF8;
    string response = client.UploadString(GROUP_API_URL, postData);
    Console.WriteLine(response);
    }
    }
    catch (WebException webEx)
    {
    Console.WriteLine(((HttpWebResponse)webEx.Response).StatusCode);
    Stream stream = ((HttpWebResponse)webEx.Response).GetResponseStream();
    StreamReader reader = new StreamReader(stream);
    String body = reader.ReadToEnd();
    Console.WriteLine(body);
    success = false;
    }
    return success;
    }
    public class GroupPayload
    {
    public string group_admin { get; set; }
    public string group_name { get; set; }
    public string message { get; set; }
    }
    }
  5. Customize the TODO lines in the C# program:
    • Specify your gateway instance ID on line 10.
    • Specify your Client ID and Client secret on lines 10 and 11.
    • Specify the group admin number (i.e. your WhatsApp number including the country code) on line 19.
    • Specify the group name (e.g. Happy Club) on line 20.
    • Specify the content of the message on line 21.
  6. Add the reference “System.Web.Extensions” by doing this:
    • Right-click on your project node in the Solution Explorer panel.
    • Choose “Add” -> “Reference…”
    • Choose “Framework” on the left pane.
    • Look for “System.Web.Extensions” in the middle pane. Check the checkbox in front of it.
    • Click OK.
  7. Build and run the application in Visual Studio.

As mentioned at the beginning of this tutorial, you will need a trial account to call the above API. Go sign up now.

Happy coding :)