Facebook-Login via Visual Basic POST
Hallo,
ich möchte mich über einen HTTP-Post bei Facebook einloggen. Ich hab mir eine eigene POST-Klasse geschrieben, die nicht das Problem verurscht.
Mein Problem ist, dass ich bei Facebook ständig die Meldung bekomme:
An was liegt das? Der Cookie wird definitiv übertragen!
Mein bisheriger Code ist:
NetFunctions ist meine Klasse. Der Fehler liegt nicht in dieser Klasse.
Ach ja: Auf ein WebbrowserControl möchte ich nicht zurückgreifen müssen.
Was mach ich falsch?
Ich wäre euch sehr dankbar, wenn ihr mir da helfen könntet!
Mit freudlichen Grüßen,
Aicher
// EDIT:
Hab jetzt diese Seite hier gefunden. Klimgt vielversprechend, funktioniert aber auch nicht.
Es wird eine HTML-Datei erstellt, in der man zu debug-zwecken schaun kann, welche Response man bekommen hat (mir ist klar, dass das auch mit einem Haltepunkt effektiver ist). Allerings bekomme ich hier lediglich eine Blanko-Login-Seite.
ich möchte mich über einen HTTP-Post bei Facebook einloggen. Ich hab mir eine eigene POST-Klasse geschrieben, die nicht das Problem verurscht.
Mein Problem ist, dass ich bei Facebook ständig die Meldung bekomme:
An was liegt das? Der Cookie wird definitiv übertragen!
Mein bisheriger Code ist:
NetFunctions ist meine Klasse. Der Fehler liegt nicht in dieser Klasse.
Dim nf As New NetFunctions.HttpPost
nf.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:42.0) Gecko/20100101 Firefox/42.0"
nf.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
nf.GetResponse("https://www.facebook.com/") 'Cookie holen
nf.Referer = "https://www.facebook.com/?_rdr"
Const email As String = "..."
Const pass As String = "..."
Dim data As String = "lsd=AVomwEE8&email=" & email & "&pass=" & pass & "loginbutton=Anmelden"
data = data.Replace("@", "%40").Replace("!", "%21") 'Ich erseze bloß mal die zwei Zeichen, da diese zwei vorkommen
Dim resp As String = nf.POST("https://www.facebook.com/login.php?login_attempt=1&lwv=100", data)
Ach ja: Auf ein WebbrowserControl möchte ich nicht zurückgreifen müssen.
Was mach ich falsch?
Ich wäre euch sehr dankbar, wenn ihr mir da helfen könntet!
Mit freudlichen Grüßen,
Aicher
// EDIT:
Hab jetzt diese Seite hier gefunden. Klimgt vielversprechend, funktioniert aber auch nicht.
Es wird eine HTML-Datei erstellt, in der man zu debug-zwecken schaun kann, welche Response man bekommen hat (mir ist klar, dass das auch mit einem Haltepunkt effektiver ist). Allerings bekomme ich hier lediglich eine Blanko-Login-Seite.
Please also mark the comments that contributed to the solution of the article
Content-Key: 287903
Url: https://administrator.de/contentid/287903
Printed on: April 20, 2024 at 02:04 o'clock
10 Comments
Latest comment
Moin,
warum das ganze nicht via OAuth machen? Ist doch heutzutage kein Problem mehr, und die empfohlene Methode für FB
https://developers.facebook.com/docs/facebook-login/manually-build-a-log ...
Gruß jodel32
warum das ganze nicht via OAuth machen? Ist doch heutzutage kein Problem mehr, und die empfohlene Methode für FB
https://developers.facebook.com/docs/facebook-login/manually-build-a-log ...
Gruß jodel32
Zitat von @Aicher1998:
Naja,warum das ganze nicht via OAuth machen? Ist doch heutzutage kein Problem mehr, und die empfohlene Methode für FB
https://developers.facebook.com/docs/facebook-login/manually-build-a-log ...
Danke, soweit war ich auch schon. Bloß einerseits versteh ich das nicht ganzm wie das zu machen ist und anderersits hat der Login via AppID und AppSecret über die developer-DLL auch nicht funktioniert.https://developers.facebook.com/docs/facebook-login/manually-build-a-log ...
damit bekommt das auch ein absoluter Anfänger hin ...
Na dann mach es halt auf die alte Art wenn das noch etwas zu hoch für dich ist:
Hier ein Beispiel um den Quelltext einer Facebook-Seite in einer Textbox abzulegen nachdem der User eingeloggt wurde.
Funktioniert hier einwandfrei...
Gruß jodel32
Hier ein Beispiel um den Quelltext einer Facebook-Seite in einer Textbox abzulegen nachdem der User eingeloggt wurde.
Imports System.Net
Imports System.Text
Imports System.IO
Public Class Form1
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
Dim url_login As String = "https://www.facebook.com/login.php"
Dim username As String = "user@domain.de"
Dim password As String = "GaNzGeHeim"
Dim strPostData As String = "?email=" & username & "&pass=" & password
Dim strUserAgent As String = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0"
Dim cookies As New CookieContainer
Dim postBytes() As Byte = Encoding.ASCII.GetBytes(strPostData)
Dim request As HttpWebRequest = WebRequest.Create(url_login)
With request
.Method = "POST"
.ContentType = "application/x-www-form-urlencoded"
.UserAgent = strUserAgent
.ContentLength = postBytes.Length
.CookieContainer = cookies
Dim stream As Stream
stream = request.GetRequestStream()
Using stream
stream.Write(postBytes, 0, postBytes.Length)
stream.Close()
End Using
.GetResponse()
End With
'Seite welche abgerufen werden soll nachdem der User eingeloggt ist
Dim pageRequest As HttpWebRequest = WebRequest.Create("https://www.facebook.com/pages")
With pageRequest
.CookieContainer = cookies
.UserAgent = strUserAgent
.Method = "GET"
Dim stream As New StreamReader(pageRequest.GetResponse().GetResponseStream())
Using stream
'Quellcode der Seite in einer Textbox ablegen
txtWebpage.Text = stream.ReadToEnd()
stream.Close()
End Using
End With
End Sub
End Class
Gruß jodel32
Zitat von @Aicher1998:
hab deinen Code getestet.
"Melde dich an, um fortzufahren."
Es funktioniert nicht.
Hier lüppt das problemlos, VS2015, kann ich dir gerne zeigen!hab deinen Code getestet.
"Melde dich an, um fortzufahren."
Es funktioniert nicht.
was aber nicht funktioniert hat:
Bei dir scheint nicht viel zu laufen so wie das aussieht.
Naja deswegen habe ich ja gesagt mach es wie es Facebook empfiehlt (OAuth), wenn bei dir alles nicht funktioniert was man dir gibt es hier aber läuft, was soll ich da machen??