Prakhar
Prakhar

Reputation: 536

send messages to another number using whatsappAPI in C#

I want to send a message from my number to another number on whatsApp using whatsApp API in C#. for this I installed WhatsAppi for .NET in visual studio 2013.

Here is the code i am using.

string from = "919586896325";
string to = "919856745896";
string msg = "hello";

WhatsApp wa = new WhatsApp(from, "357168069647463", "abc", false, false);

wa.OnConnectSuccess += () =>
{
    System.Diagnostics.Debug.WriteLine("connected to whatsapp");
    wa.OnLoginSuccess += (phoneNumber, data) =>
    {
         wa.SendMessage(to, msg);
         System.Diagnostics.Debug.WriteLine("Message Sent");
    };

    wa.OnLoginFailed += (data) =>
    {
         System.Diagnostics.Debug.WriteLine(data);
    };

    wa.Login();
};


wa.OnConnectFailed += (ex) =>
{
    System.Diagnostics.Debug.WriteLine("could not connect = {0}", ex);
};

wa.Connect();

when i run this code following output comes.

    connected to whatsapp
A first chance exception of type 'System.FormatException' occurred in mscorlib.dll
'iisexpress.exe' (CLR v4.0.30319: /LM/W3SVC/3/ROOT-1-130858337690371973): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll'. 
could not connect = System.FormatException: Invalid length for a Base-64 char array or string.
   at System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength)
   at System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength)
   at System.Convert.FromBase64String(String s)
   at WhatsAppApi.WhatsAppBase.encryptPassword()
   at WhatsAppApi.WhatsSendBase.addAuthResponse()
   at WhatsAppApi.WhatsSendBase.Login(Byte[] nextChallenge)
   at MessageDiversification.services.MessageDivertService.<>c__DisplayClass5.<SendMessage>b__0() in c:\Users\vitana\Documents\Visual Studio 2013\Projects\MessageDiversification\MessageDiversification\services\MessageDivertService.asmx.cs:line 48
   at WhatsAppApi.WhatsEventBase.fireOnConnectSuccess()
   at WhatsAppApi.WhatsAppBase.Connect()

Can somebody tell how to solve the problem ?

Upvotes: 1

Views: 3833

Answers (3)

Vlad Bezden
Vlad Bezden

Reputation: 89499

You need to encode your password to Base64.

public static string Base64Encode(string text)
{
    return System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(text));
}

then call

WhatsApp wa = new WhatsApp(from, Base64Encode("357168069647463"), "abc", false, false);

Upvotes: 2

marcusdev
marcusdev

Reputation: 11

the php version that the.net version is derived from has ceased due to legal reasons. there is no real whatsapp api if you google it

Upvotes: 0

Maximilian Gerhardt
Maximilian Gerhardt

Reputation: 5353

Invalid length for a Base-64 char array or string.

Indicates that you should have used a base-64 encoded string somewhere. Judging from https://github.com/andregsilv/WhatsAppApi/blob/master/WhatsTest/Program.cs (line 29), the password seems to be base64-encoded. Be sure to follow the same pattern as e.g. in C# How to send messages with whatsapi.net?

Upvotes: 0

Related Questions