positus-api-csharp-client 1.0.5

Install-Package positus-api-csharp-client -Version 1.0.5
dotnet add package positus-api-csharp-client --version 1.0.5
<PackageReference Include="positus-api-csharp-client" Version="1.0.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add positus-api-csharp-client --version 1.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: positus-api-csharp-client, 1.0.5"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install positus-api-csharp-client as a Cake Addin
#addin nuget:?package=positus-api-csharp-client&version=1.0.5

// Install positus-api-csharp-client as a Cake Tool
#tool nuget:?package=positus-api-csharp-client&version=1.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Compatibility

.Net Core
.Net Framework
Mono
Xamarin.IOS
Xamarion.Android
Universal Windows Plataform
Windows
Windows Phone
Windows Phone Silverlight
Language C#, C++, F#,  Visual Basic and other language.

Instantiating

using positus_api_csharp_client;
using positus_api_csharp_client.Models.Requests;
using positus_api_csharp_client.Models.Responses;

Authentication

If you don't have an authentication token, click here to generate one.

Production
Client client = new Client(@"your-api-token", false);

Sandbox
Client client = new Client(@"your-api-token", true);

Sending Messages

The first step to be able to send messages is to specify the ID number of origin:

client.numberId = "chave";

Then send the message and wait for a response.

If you want to send a message using data on your own, you can use:

@Message message = client.sendData(Object);

To check all the data that can be sent in each type of message, check the WhatsApp Business documentation.

If you prefer, we provide ready methods for each type of message.

Text

@Message message = client.sendMessage(new Text()
    {
        text = new TextDetail() { body = "Olá Mundo" }
                          ,
        to = "+999999999"
                          ,
        type = "text"
    });

Location

    @Message message = client.sendLocation(new Location()
    {
        location = new LocationDetail()
        {
            name = "Robbu brazil",
            address = "Av. Angélica, 2530 - Bela Vista, São Paulo - SP, 01228-200",
            longitude = -46.662787,
            latitude = -23.553610
        },
        to = "+999999999",
        type = "location"
    });

Image

    @Message message = client.sendImage(new Image()
    {
        image = new ImageDetail()
        {
            link = "https://picsum.photos/200"
        },
         to = "+999999999",
        type = "image"
    });

Document

    @Message message = client.sendDocument(new Document()
    {
        document = new DocumentDetail()
        {
            filename = "original.zip",
            caption = "Original",
            link = "https://loremipsum.de/downloads/original.zip"

        },
        to = "+999999999",
        type = "image"
    });

Video

    @Message message = client.sendVideo(new Video()
    {
        video = new VideoDetail()
        {
            caption = "Original",
            link = "http://techslides.com/demos/sample-videos/small.mp4"
        },
        to = "+999999999",
        type = "video"
    });

Audio

    @Message message = client.sendAudio(new Audio()
    {
        audio = new AudioDetail()
        {
            link = "https://file-examples-com.github.io/uploads/2017/11/file_example_MP3_700KB.mp3"
        },
        to = "+999999999",
        type = "video"
    });

Contact

    List<ContactDetail> contactDetails = new List<ContactDetail>();

    List<Phone> phones = new List<Phone>();
    phones.Add(new Phone() { phone = "+55 11 2626-4234", type= "CELL", wa_id = "551126264234" });

    contactDetails.Add(new ContactDetail()
    {
        name = new Name() { first_name = "Positus Provider", formatted_name = "Positus Provider" },
        phones = phones
    });


    @Message message = client.sendContacts(new Contact()
    {
        contacts = contactDetails,
        to = "+999999999",
        type = "contacts"
    });

HSM

            @Message message = client.sendHsm(new Hsm()
            {

                hsm = new HsmDetail()
                {
                    element_name = "xxxxxxx"
                ,
                    @namespace = "xxxxxxx"
                ,
                    language = new Language()
                    {
                        code = "pt_BR"
                ,
                        policy = "deterministic"
                    }
                ,
                    localizable_params = list
                }
                      ,
                to = "+999999999999"
                      ,
                type = "hsm"
            });

Template


   List<Component> lstComponent = new List<Component>();
            Component itemComponent ;
            Parameter parameter ;

            List<Parameter> lstParameterHeader= new List<Parameter>();

            parameter = new Parameter();
            parameter.type = "image";
            parameter.image = new ImageLink() { link = "https://picsum.photos/200" };
            lstParameterHeader.Add(parameter);



            List<Parameter> lstParameterBody = new List<Parameter>();
            parameter = new Parameter();
            parameter.type = "text";
            parameter.text = "Helber";
            lstParameterBody .Add(parameter);

            parameter.type = "text";
            parameter.text = "Empresa X";
            lstParameterBody .Add(parameter);

            itemComponent = new Component();
            itemComponent.type = "body";
            itemComponent.parameters = lstParameterBody ;
            lstComponent .Add(itemComponent);


            itemComponent = new Component();
            itemComponent.type = "header";
            itemComponent.parameters = lstParameterHeader;
            lstComponent .Add(itemComponent);



            @Message message = client.sendTemplate(new Template()
            {

                template = new TemplateDetails()
                {
                    name = "your_template_name"
                ,
                    @namespace = "your_namespace"
                ,
                    language = new Language()
                    {
                        code = "pt_BR"
                ,
                        policy = "deterministic"
                    }
                ,
                    components = lstComponent 
                }
                      ,
                to = "+55999999999"
                      ,
                type = "template"
            });

Webhook

    [HttpPost]
    public ActionResult post([FromBody] Webhook obj)
    {
        foreach (var item in obj.messages)
        {
            var mensagem = item.text.body;
        }
        return Ok();
    }

Documentation

In case you have difficulties, we provide an example video of integration.

Documentation PT

Documentation ES

Documentation EN

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.5 327 7/22/2020
1.0.4 160 7/20/2020
1.0.3 167 7/17/2020