2016-11-23 4 views
1

Ich möchte eine Nachricht von einem Kontakt auf Whats App abrufen (mit der Erlaubnis des Benutzers natürlich dachte ich etwas wie oAuth), aber soweit ich fand, welche Apps hat keine API. Also habe ich versucht, die Web-Version in einen WebBrowser zu laden und die Nachricht von dort zu bekommen, aber ich kann es nicht funktionieren lassen.Wie kann ich eine Nachricht von einem bestimmten Kontakt erhalten?

Es beginnt mit dem Laden der Seite, um den zu scannenden QR-Code anzufordern, aber es wird auf eine Seite umgeleitet, die besagt, dass der aktuelle Browser nicht unterstützt wird. Also habe ich versucht, den Emulationsmodus im IE zu verwenden, ihn auf IE11 zu setzen und den HTTP-Benutzeragenten in den richtigen IE11 zu ändern, aber es funktioniert auch nicht. Wie kann ich das beheben?

Hier ist meine aktuellen Code:

public partial class Form1 : Form 
    { 
     [DllImport("urlmon.dll", CharSet = CharSet.Ansi)] 
     private static extern int UrlMkSetSessionOption(
      int dwOption, string pBuffer, int dwBufferLength, int dwReserved); 

     const int URLMON_OPTION_USERAGENT = 0x10000001; 
     const int URLMON_OPTION_USERAGENT_REFRESH = 0x10000002; 
     const string usersAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      SetEmulation(); 
      ChangeUserAgent(usersAgent); 
     } 

     public static void ChangeUserAgent(string UserAgent) 
     { 
      UrlMkSetSessionOption(URLMON_OPTION_USERAGENT_REFRESH, null, 0, 0); 
      UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, UserAgent, UserAgent.Length, 0); 
     } 

     public void SetEmulation() 
     { 
      const int BROWSER_EMULATION_IE11 = 0x2AF9; 
      var appName = Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName); 
      Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", 
          appName, BROWSER_EMULATION_IE11, RegistryValueKind.DWord); 
     } 

     void UnsetEmulation() 
     { 
      using (RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true)) 
      { 
       var appName = Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName); 
       key.DeleteValue(appName); 
      } 
     } 
} 

und ich versuche, offen wie folgt aus:

webBrowser1.Navigate(@"http://web.whatsapp.com/"); 

AA völlig andere Lösung, dies zu erreichen, sehr willkommen ist.

+0

Ich bin auf dem Weg, es mit Cef Browser arbeiten zu lassen ... Ich gebe den nativen Webbrowser von .NET auf – Jack

+0

Wenn Sie mit IE11 surfen, sehen Sie unterstützte Browser auf der Homepage. * Wir empfehlen, WhatsApp mit einem der folgenden Browser zu verwenden: Google Chrome, Mozilla Firefox, Opera WhatsApp unterstützt auch: Microsoft Edge, Safari (nur MacOS 10.8+) * Es scheint, dass die Website IE überhaupt nicht unterstützt. –

Antwort

1

Wenn Sie durchsuchen https://web.whatsapp.com/ Verwendung von Internet Explorer finden Sie unterstützten Browser auf der Startseite sehen, die sagt:

Wir empfehlen die Verwendung von WhatsApp mit einem der folgenden Browser:

  • Google Chrome
  • Mozilla Firefox
  • Opera WhatsApp

unterstützt auch:

  • Microsoft Edge
  • Safari (MacOS 10.8+ Nur)

So scheint es derzeit der Website können Sie nicht Internet Explorer .Als eine Alternative unterstützen Verwenden Sie Cefsharp Browser. Gehen Sie installieren so ein geeignetes CefSharp.WinForms nuget Paket in Visual Studio und dann die Kontrolle zu Ihrem Formular hinzufügen, und die Anwendung auszuführen:

var browser = new CefSharp.WinForms.ChromiumWebBrowser("https://web.whatsapp.com/"); 
browser.Dock = DockStyle.Fill; 
this.Controls.Add(browser); 

Nachdem Sie das Programm ausführen, es zeigt einen QR-Code, wenn Sie mit scannen Sie Ihren Sie werden eingeloggt sein.

Um den QR-Code zu scannen, sollten Sie WhatsApp auf Ihrem Handy installiert haben. Öffnen Sie dann die Anwendung → CHATS → Menü öffnen → Wählen Sie WhatApp Web und scannen Sie den Code.

+0

** Anmerkung 1: ** Die neueste Version von 'CefSharp.WinForms' (im Moment 53.0.0) benötigt .NET 4.5.2. –

+0

** Anmerkung 2: ** Es funktioniert nicht mit der 'Any CPU' Plattform, die sofort einsatzbereit ist. Sie sollten 'x86' oder' x64' wählen. Um eine CPU-Unterstützung zu erhalten, werfen Sie einen Blick auf [Feature Request - Add AnyCPU Support # 1714] (https: // github.com/cefsharp/CefSharp/issues/1714) –

+0

Lassen Sie mich wissen, wenn Sie Fragen über die Antwort haben :) –

Verwandte Themen