Hallo liebe VB Community,
dies ist mein erster Beitrag und ich komme gleich mit einer Frage;)
Ich arbeite im moment an einem Facebook - Freunde Ad Programm mit VB NET 2010. Wollte meinen Bot nicht auf Basis eines Form mit WebBrowser Tool sondern als kompakte Konsolenanwendung entwickeln mit HttpWeb Response/Request .
Login - funktioniert soweit
Jedoch hab ich irgendwas bei den Cookies falsch gemacht...
Profil besuchen - und wir sind nicht eingeloggt, kommmen zwar aufs Profil aber ohne eingeloggt zu sein bzw wurden die Cookies nicht erkannt.
Hoffe jemand kann mir weiterhelfen, denn ich find den Fehler irgendwie nicht.
dies ist mein erster Beitrag und ich komme gleich mit einer Frage;)
Ich arbeite im moment an einem Facebook - Freunde Ad Programm mit VB NET 2010. Wollte meinen Bot nicht auf Basis eines Form mit WebBrowser Tool sondern als kompakte Konsolenanwendung entwickeln mit HttpWeb Response/Request .
Login - funktioniert soweit
Jedoch hab ich irgendwas bei den Cookies falsch gemacht...
Profil besuchen - und wir sind nicht eingeloggt, kommmen zwar aufs Profil aber ohne eingeloggt zu sein bzw wurden die Cookies nicht erkannt.
VB.NET-Quellcode
- Imports System.Net
- Imports System.Text.RegularExpressions
- Imports System.Text
- Imports System.IO
- Module Module1
- Dim logincookie As CookieContainer
- Dim PEmail As String
- Dim PPass As String
- Public Structure FBLoginData
- Public EMail As String
- Public Password As String
- Public lsd As String
- Public charset As String
- End Structure
- Private Function GetLoginData(ByVal EMail As String, ByVal Password As String, ByVal SourceCode As String) As FBLoginData
- Dim FBData As New FBLoginData()
- FBData.EMail = PEmail
- FBData.Password = PPass
- Dim lsdPattern As String = "<input type=""hidden"" name=""lsd"" value=""(?<lsd>.+?)"" />"
- Dim lsd As Match = Regex.Match(SourceCode, lsdPattern)
- FBData.lsd = lsd.Groups("lsd").Value
- Dim charsetPattern As String = "<input type=""hidden"" name=""charset_test"" value=""(?<charset>.+?)"" />"
- Dim charset As Match = Regex.Match(SourceCode, charsetPattern)
- FBData.charset = charset.Groups("charset").Value
- Return FBData
- End Function
- Sub Main()
- ' Willkommensnachricht
- Console.WriteLine(" *******************************\n")
- Console.WriteLine(" * Facebook Bot by Roteisen*\n")
- Console.WriteLine(" *******************************\n")
- ' Public Var PEmail und PPass werden deklariert.
- Console.WriteLine()
- Console.WriteLine()
- Console.WriteLine(" - Bitte Facebook E-Mail eingeben: -")
- Console.WriteLine()
- PEmail = Console.ReadLine()
- Console.WriteLine()
- Console.WriteLine(" - Bitte Facebook Passwort eingeben: -")
- Console.WriteLine()
- PPass = Console.ReadLine()
- Console.WriteLine()
- Console.WriteLine()
- Console.WriteLine(" processing Login ...")
- Threading.Thread.Sleep(2000)
- intlogin()
- Console.WriteLine()
- Console.WriteLine(" - Login Succes! -")
- Console.WriteLine()
- Console.WriteLine("-------------------------------------------------------")
- Console.WriteLine()
- FBProfil()
- Console.WriteLine("Profil besuchen")
- Console.ReadLine()
- End Sub
- Sub intlogin()
- 'Daten varuser & varpass werden mit postData versendet !
- '/Dim postData As String = "charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&lsd=8WiEa&locale=de_DE&email=" & PEmail & "&pass=" & PPass & "&default_persistent=0&charset_test=%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84&lsd=8WiEa"
- '/Dim tempCookies As New CookieContainer
- 'Enconding, da Http keinen Stream warnehmen kann
- '/Dim encoding As New UTF8Encoding
- '/Dim byteData As Byte() = encoding.GetBytes(postData)
- 'Login zu Facebook
- '/ Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("https://www.facebook.com/login.php?login_attempt=1"), HttpWebRequest)
- '/ postReq.Method = "POST"
- '/postReq.KeepAlive = True
- '/ postReq.CookieContainer = tempCookies
- '/ postReq.ContentType = "pplication/x-www-form-urlencoded"
- '/postReq.Referer = "https://www.facebook.com/login.php?login_attempt=1"
- '/postReq.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110613 Firefox/6.0a2"
- '/postReq.ContentLength = byteData.Length
- '/ Dim postreqstream As Stream = postReq.GetRequestStream()
- '/postreqstream.Write(byteData, 0, byteData.Length)
- '/postreqstream.Close()
- '/ Dim postresponse As HttpWebResponse
- '/ postresponse = DirectCast(postReq.GetResponse(), HttpWebResponse)
- '/tempCookies.Add(postresponse.Cookies)
- '/ logincookie = tempCookies
- '/ Dim postreqreader As New StreamReader(postresponse.GetResponseStream())
- '/ My.Computer.FileSystem.WriteAllText("C:\Debug\x5.html", postreqreader.ReadToEnd(), False)
- '/ postreqreader.Close()
- Dim uri As New Uri("http://www.facebook.com/login.php?login_attempt=1")
- Dim cookieContainer As New CookieContainer()
- Dim FBData As FBLoginData
- Dim tempCookies As New CookieContainer
- ' Infos auslesen (Wegen Cookies)
- 'Dim sessionRequest As HttpWebRequest = DirectCast(WebRequest.Create(uri), HttpWebRequest)
- 'sessionRequest.CookieContainer = New CookieContainer()
- 'logincookie = sessionRequest.CookieContainer
- 'sessionRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7"
- 'Dim sessionResponse As HttpWebResponse = DirectCast(sessionRequest.GetResponse(), HttpWebResponse)
- 'Dim checkReader As New StreamReader(sessionResponse.GetResponseStream())
- 'FBData = GetLoginData(FBData.EMail, FBData.Password, checkReader.ReadToEnd())
- 'checkReader.Close()
- 'sessionResponse.Close()
- ' Einloggen
- Dim loginData As String = "charset_test=" & FBData.charset & "&lsd=" & FBData.lsd & "&locale=de_DE&email=" & FBData.EMail & "&pass=" & FBData.Password & "&persistent=1&default_persistent=1&charset_test=" & FBData.charset & "&lsd=" & FBData.lsd
- Dim req As HttpWebRequest = DirectCast(HttpWebRequest.Create("http://www.facebook.com/login.php?login_attempt=1"), HttpWebRequest)
- req.CookieContainer = logincookie
- req.Method = "POST"
- req.ContentType = "application/x-www-form-urlencoded"
- req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7"
- Dim encoding As New ASCIIEncoding()
- Dim loginDataBytes As Byte() = encoding.GetBytes(loginData)
- req.ContentLength = loginDataBytes.Length
- Dim stream As IO.Stream = req.GetRequestStream()
- stream.Write(loginDataBytes, 0, loginDataBytes.Length)
- stream.Close()
- Dim res As HttpWebResponse = DirectCast(req.GetResponse(), HttpWebResponse)
- tempCookies.Add(res.Cookies)
- logincookie = tempCookies
- Return
- End Sub
- Sub FBProfil()
- Dim tempCookies As New CookieContainer
- ' Test ID 100003177993836 : , aus Txt Holen IDs
- Dim request As HttpWebRequest = DirectCast(WebRequest.Create("http://www.facebook.com/profile.php?id=100003177993836"), HttpWebRequest)
- request.CookieContainer = logincookie
- request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7"
- Dim res As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
- tempCookies.Add(res.Cookies)
- logincookie = tempCookies
- Dim str As New StreamReader(res.GetResponseStream)
- My.Computer.FileSystem.WriteAllText("C:\Debug\x53.html", str.ReadToEnd(), False)
- res.Close()
- Return
- End Sub
- End Module
Hoffe jemand kann mir weiterhelfen, denn ich find den Fehler irgendwie nicht.