public void Login()
{
//"$this->device-$this->whatsAppVer-$this->port";
string resource = string.Format(@"{0}-{1}-{2}",
WhatsConstants.IphoneDevice,
WhatsConstants.WhatsAppVer,
WhatsConstants.WhatsPort);
var data = this.writer.StartStream(WhatsConstants.WhatsAppServer, resource);
var feat = this.addFeatures();
var auth = this.addAuth();
this.whatsNetwork.SendData(data);
this.whatsNetwork.SendNode(feat);
this.whatsNetwork.SendNode(auth);
this.PollMessages();
ProtocolTreeNode authResp = this.addAuthResponse();
this.whatsNetwork.SendNode(authResp);
int cnt = 0;
do
{
this.PollMessages();
} while ((cnt++ < 100) &&
(this.loginStatus.Equals(this.disconnectedStatus, StringComparison.OrdinalIgnoreCase)));
}
private static void Main(string[] args) { var tmpEncoding = Encoding.UTF8; System.Console.OutputEncoding = Encoding.Default; System.Console.InputEncoding = Encoding.Default; string nickname = "WhatsApiNet"; string sender = "316******3"; // Mobile number with country code (but without + or 00) string password = "******";//v2 password string target = "316********6";// Mobile number to send the message to WhatsApp wa = new WhatsApp(sender, password, nickname, true); //event bindings wa.OnLoginSuccess += wa_OnLoginSuccess; wa.OnLoginFailed += wa_OnLoginFailed; wa.OnGetMessage += wa_OnGetMessage; wa.OnGetMessageReceivedClient += wa_OnGetMessageReceivedClient; wa.OnGetMessageReceivedServer += wa_OnGetMessageReceivedServer; wa.OnNotificationPicture += wa_OnNotificationPicture; wa.OnGetPresence += wa_OnGetPresence; wa.OnGetGroupParticipants += wa_OnGetGroupParticipants; wa.OnGetLastSeen += wa_OnGetLastSeen; wa.OnGetTyping += wa_OnGetTyping; wa.OnGetPaused += wa_OnGetPaused; wa.OnGetMessageImage += wa_OnGetMessageImage; wa.OnGetMessageAudio += wa_OnGetMessageAudio; wa.OnGetMessageVideo += wa_OnGetMessageVideo; wa.OnGetMessageLocation += wa_OnGetMessageLocation; wa.OnGetMessageVcard += wa_OnGetMessageVcard; wa.OnGetPhoto += wa_OnGetPhoto; wa.OnGetPhotoPreview += wa_OnGetPhotoPreview; wa.OnGetGroups += wa_OnGetGroups; wa.OnGetSyncResult += wa_OnGetSyncResult; wa.OnGetStatus += wa_OnGetStatus; wa.OnGetPrivacySettings += wa_OnGetPrivacySettings; DebugAdapter.Instance.OnPrintDebug += Instance_OnPrintDebug; wa.Connect(); string datFile = getDatFileName(sender); byte[] nextChallenge = null; if (File.Exists(datFile)) { try { string foo = File.ReadAllText(datFile); nextChallenge = Convert.FromBase64String(foo); } catch (Exception) { }; } wa.Login(nextChallenge); ProcessChat(wa, target); Console.ReadKey(); }