· 9 years ago · Oct 04, 2016, 06:08 PM
1Function Login(username As String, password As String, cookies As CookieContainer) As String
2 Try
3 Dim request As HttpWebRequest = HttpWebRequest.Create("https://i.instagram.com/api/v1/accounts/login/")
4 request.CookieContainer = cookies
5 request.Method = "POST"
6 request.Accept = "*/*"
7 request.Headers.Add("X-IG-Connection-Type", "WiFi")
8 request.Headers.Add("Accept-Language", "ar-SA;q=1, en-SA;q=0.9")
9 request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"
10 request.UserAgent = "Instagram* 9.3.0 Android (18/4.3; 320dpi; 720x1280; Xiaomi; HM 1SW; armani; qcom; en_US)"
11 request.Headers.Add("X-IG-Capabilities: 3wI=")*
12 Dim data As String = "{""username"":""" & username & """,""password"":""" & password & """,""_csrftoken"":""missing"",""device_id"":""" & Guid.NewGuid.ToString.ToUpper & """,""login_attempt_count"":""0""}"
13 Dim sb As New StringBuilder
14 Try
15 Dim secretkey As String = "26e29e57f4ea61a0ebb4ee0ec483e5efe7ca39093adcfa3689dadbfba139546b"
16 Dim sha As New System.Security.Cryptography.HMACSHA256(System.Text.ASCIIEncoding.ASCII.GetBytes(secretkey))
17 Dim Hash() As Byte = sha.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(data))
18 sb = New StringBuilder(Hash.Length * 2)
19 For Each B As Byte In Hash
20 sb.Append(Hex(B).PadLeft(2, "0"))
21 Next
22 Catch ex As Exception : End Try
23 Dim postData As String = "ig_sig_key_version=4&signed_body=" & sb.ToString.ToLower & "." & Web.HttpUtility.UrlEncode(data)
24 Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
25 request.ContentLength = byteArray.Length
26 Dim dataStream As Stream = request.GetRequestStream()
27 dataStream.Write(byteArray, 0, byteArray.Length)
28 dataStream.Close()
29 Dim response As HttpWebResponse = request.GetResponse()
30 dataStream = response.GetResponseStream()
31 Dim reader As New StreamReader(dataStream)
32 Dim responseFromServer As String = reader.ReadToEnd()
33 reader.Close()
34 dataStream.Close()
35 response.Close()
36 Return responseFromServer
37 Catch ex As WebException
38 Dim r = New StreamReader(ex.Response.GetResponseStream).ReadToEnd
39 Return "error :" & vbNewLine & r
40 End Try
41 End Function