[VB] Facebook login "Cookies erforderlich"

12/05/2012 19:31 Ludder231#1
Hi,

ich wollte mich mit meinem Programm in Facebook einloggen aber facebook sagt, dass Cookies erfoderlich sind, obwohl ist diese requeste.


Mit der gleichen func kann ich mich bei OGame einloggen was ja auch cookies braucht. Ich weiß nicht warum er jz sagt, dasss cookies erfoderlich sind. Ich gehe über Http nicht über HTTPs...

MfG Ludder213
12/05/2012 22:10 'Heaven.#2
Du musst vorher einmal cookies holen, indem du facebook ganz normal aufrufst... dann eben die selben cookiecontainer verwenden für get und post
12/06/2012 18:57 Ludder231#3
Das tute ich doch lognicookie wird ja bei WebRPOst gesetzt und den benutze ich bei p_Post als letzten Parameter..?
12/06/2012 19:15 'Heaven.#4
Erstmal nen paar cookies holen von der Fbseite...Das macht du per "GET"
danach kannste deinen post senden
12/06/2012 19:41 Ludder231#5
In etwa so?:

12/06/2012 22:36 'Heaven.#6
Ne^^
Einen cookiecontainer global deklarieren
Nen GET nach FB mit Angabe des cookiecontainers
Den POST senden mit dem SELBEN cookiecontainer
12/07/2012 13:29 Ludder231#7
Hmm...so? Ich hab fblogincookie global deklariert und bei meinen funcs benutzt

12/07/2012 13:58 'Heaven.#8
Nein...
Ich stelle dir wenn ich Zuhause bin mal etwas hier rein...

Dim bläh as cookiecontainer = HTTP...

Das heißt, er setz den gesamte quelltext der Seite als Cookie, also kann das nicht gehen
12/07/2012 14:10 Kraizy​#9
PHP Code:
Option Strict On
Option Explicit On

Imports System
.IO
Imports System
.Net
Imports System
.Text

//login
With New Http
     Dim html 
As String = .GetResponse("https://www.facebook.com/login.php?login_attempt=1")

     
Dim sb As New StringBuilder
     sb
.Append("lsd=" html.Substring(html.IndexOf("lsd")).Split(""""c)(2))
     
sb.Append("&display=")
     
sb.Append("&legacy_return=1")
     
sb.Append("&return_session=0")
     
sb.Append("&trynum=1")
     
sb.Append("&charset_test=" html.Substring(html.IndexOf("charset_test")).Split(""""c)(2))
     
sb.Append("&timezone=-60")
     
sb.Append("&lgnrnd=" html.Substring(html.IndexOf("lgnrnd")).Split(""""c)(2))
     
sb.Append("&lgnjs=" html.Substring(html.IndexOf("lgnjs")).Split(""""c)(4))
     
sb.Append("&email=EMAIL")
     
sb.Append("&pass=PASSWORT")
     
sb.Append("&persistent=1")
     
sb.Append("&default_persistent=1")

     
html = .GetResponse("https://www.facebook.com/login.php?login_attempt=1"sb.ToString)
End With

Public Class Http
     Dim cookieCon 
As New CookieContainer
     Dim request 
As HttpWebRequest
     Dim response 
As HttpWebResponse

     
Public Function GetResponse(ByVal url As String) As String
          request 
CType(HttpWebRequest.Create(url), HttpWebRequest)
          
request.CookieContainer cookieCon
          response 
CType(request.GetResponse(), HttpWebResponse)

          Return New 
StreamReader(response.GetResponseStream()).ReadToEnd()
     
End Function

     Public Function 
GetResponse(ByVal url As StringByVal post As String) As String
          request 
CType(HttpWebRequest.Create(url), HttpWebRequest)
          
request.Method "POST"
          
request.CookieContainer cookieCon
          request
.UserAgent "Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0"
          
request.ContentType "application/x-www-form-urlencoded"

          
Dim byteArr() As Byte Encoding.Default.GetBytes(post)
          
request.ContentLength byteArr.Length

          Dim dataStream 
As Stream request.GetRequestStream()
          
dataStream.Write(byteArr0byteArr.Length)

          
response CType(request.GetResponse(), HttpWebResponse)

          Return New 
StreamReader(response.GetResponseStream()).ReadToEnd()
     
End Function
End Class 
jz mal auf die schnelle gemacht mit der klasse aus dem httprequest tutorial