Авторизация VK перестала работать - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Доброе время суток! Не поможете сделать авторизацию в Вк .. Раньше нормально всё работало.. Теперь как не пытаюсь в vk.com и в m.vk.com не как не могу авторизоваться программно Перерыл тонну сайтов с этой темой , но увы старые варианты тоже не работают.. Если есть время попробуйте сами .. Убил дня 4-е перед тем как сюда написать.. Надеюсь поможете ! Заранее благодарен...

Решение задачи: «Авторизация VK перестала работать»

textual
Листинг программы
  1. Imports System.IO
  2. Imports System.Net
  3.  
  4. Module Module1
  5.  
  6.     Structure Session
  7.         Public USER_ID As String
  8.         Public ACCESS_TOKEN As String
  9.         Public EXPIRES_IN As String
  10.  
  11.         Function ToString() As String
  12.             Return "USER_ID: " & USER_ID & " ACCESS_TOKEN: " & ACCESS_TOKEN & " EXPIRES_IN: " & EXPIRES_IN
  13.         End Function
  14.     End Structure
  15.  
  16.     Sub Main()
  17.         Dim CContainer As New CookieContainer
  18.         Dim SUrl As String = "https://login.vk.com/"
  19.         Dim PData As String = "email=79999999999&pass=12345" 'ЛОГИН И ПАРОЛЬ
  20.         Dim CSession As Session = AuthCookie(SUrl, PData)
  21.         Console.WriteLine(GetUser(CSession))
  22.         Console.ReadLine()
  23.     End Sub
  24.  
  25.     'ТЕСТОВАЯ Ф-ИЯ
  26.     Function GetUser(ByVal CSession As Session) As String
  27.         Dim request As HttpWebRequest
  28.         Dim response As HttpWebResponse
  29.         request = HttpWebRequest.Create("https://api.vk.com/method/users.get?user_id=" & CSession.USER_ID & "&v=5.50&access_token=" & CSession.ACCESS_TOKEN)
  30.         request.Method = "GET"
  31.         request.KeepAlive = True
  32.         request.ContentType = "application/x-www-form-urlencoded"
  33.         response = request.GetResponse
  34.         Return (New StreamReader(response.GetResponseStream()).ReadToEnd())
  35.     End Function
  36.  
  37.     Function GetToken(ByRef CContainer As CookieContainer) As String
  38.         Dim request As HttpWebRequest
  39.         Dim response As HttpWebResponse
  40.         'ТУТ ПЕРЕДАЕМ ID ПРИЛОЖЕНИЯ (client_id), scope - РАЗРЕШЕНИЯ (в общем в документацию)
  41.         request = HttpWebRequest.Create("https://oauth.vk.com/authorize?client_id=000000&scope=2047&redirect_uri=http://oauth.vk.com/blank.html&display=mobile&response_type=token")
  42.         request.Method = "GET"
  43.         request.KeepAlive = True
  44.         request.ContentType = "application/x-www-form-urlencoded"
  45.         request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv: 44.0) Gecko/20100101 Firefox/44.0"
  46.         request.CookieContainer = CContainer
  47.         response = request.GetResponse
  48.         Dim Temp As String = (New StreamReader(response.GetResponseStream()).ReadToEnd())
  49.         Temp = PARS.GetPars(Temp, "<form method=""post"" action=""", """")
  50.  
  51.         Dim PostData As String = ""
  52.         request = CType(WebRequest.Create(Temp), HttpWebRequest)
  53.         request.ContentType = "application/x-www-form-urlencoded"
  54.         request.ContentLength = PostData.Length
  55.         request.Method = "POST"
  56.         request.AllowAutoRedirect = True
  57.         request.CookieContainer = CContainer
  58.         Dim requestStream As Stream = request.GetRequestStream()
  59.         Dim postBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(PostData)
  60.         requestStream.Write(postBytes, 0, postBytes.Length)
  61.         requestStream.Close()
  62.         response = CType(request.GetResponse(), HttpWebResponse)
  63.         Return Convert.ToString(response.ResponseUri)
  64.     End Function
  65.  
  66.     Function AuthCookie(ByVal SUrl As String, ByVal PData As String) As Session
  67.         Dim CContainer As New CookieContainer
  68.         Dim request As HttpWebRequest
  69.         Dim response As HttpWebResponse
  70.         Dim Cookie As New CookieContainer
  71.         request = HttpWebRequest.Create("https://m.vk.com/")
  72.         request.Method = "GET"
  73.         request.KeepAlive = True
  74.         request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
  75.         request.CookieContainer = CContainer
  76.         response = request.GetResponse
  77.         Dim R As New StreamReader(response.GetResponseStream, System.Text.Encoding.Default)
  78.  
  79.         Dim NUrl As String = PARS.GetPars(R.ReadToEnd, "<form method=""post"" action=""", """")
  80.  
  81.         'NEW SEND DATA
  82.         request = CType(WebRequest.Create(NUrl), HttpWebRequest)
  83.         request.ContentType = "application/x-www-form-urlencoded"
  84.         request.ContentLength = PData.Length
  85.         request.Method = "POST"
  86.         request.AllowAutoRedirect = True
  87.         request.CookieContainer = CContainer
  88.         Dim requestStream As Stream = request.GetRequestStream()
  89.         Dim postBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(PData)
  90.         requestStream.Write(postBytes, 0, postBytes.Length)
  91.         requestStream.Close()
  92.         response = CType(request.GetResponse(), HttpWebResponse)
  93.         Dim Result As String = GetToken(CContainer)
  94.         Result = Result.Split("#")(1)
  95.         Dim Temp(2) As String
  96.         For I As Integer = 0 To 2 Step 1
  97.             Temp(I) = Result.Split("&")(I)
  98.         Next
  99.         Dim CSession As Session
  100.         CSession.ACCESS_TOKEN = Temp(0).Split("=")(1)
  101.         CSession.EXPIRES_IN = Temp(1).Split("=")(1)
  102.         CSession.USER_ID = Temp(2).Split("=")(1)
  103.         Return CSession
  104.     End Function
  105.  
  106.     'ФУНКЦИЯ ПАРСИНГА
  107.     Structure PARS
  108.         Public Shared Function GetPars(ByVal strSource As String, ByRef strStart As String, ByRef strEnd As String, Optional ByVal Index As Integer = 0, Optional ByRef startPos As Integer = 0) As String
  109.             Dim iPos As Integer, iEnd As Integer, lenStart As Integer = strStart.Length
  110.             Dim strResult As String
  111.             strResult = String.Empty
  112.             For i = 0 To Index - 1 Step 1
  113.                 iPos = strSource.IndexOf(strStart, startPos)
  114.                 iEnd = strSource.IndexOf(strEnd, iPos + lenStart)
  115.                 iEnd = iEnd + strEnd.Length
  116.                 If iPos <> -1 AndAlso iEnd <> -1 Then
  117.                     strSource = strSource.Substring(iEnd, strSource.Length - (0 + iEnd))
  118.                 Else
  119.                     Exit For
  120.                 End If
  121.             Next
  122.             iPos = strSource.IndexOf(strStart, startPos)
  123.             iEnd = strSource.IndexOf(strEnd, iPos + lenStart)
  124.             If iPos <> -1 AndAlso iEnd <> -1 Then
  125.                 strResult = strSource.Substring(iPos + lenStart, iEnd - (iPos + lenStart))
  126.             End If
  127.             Return strResult
  128.         End Function
  129.  
  130.         Public Shared Function Count(ByRef strSource As String, ByRef strStart As String, ByRef strEnd As String, Optional ByRef startPos As Integer = 0) As Integer
  131.             Dim iPos As Integer, iEnd As Integer, lenStart As Integer = strStart.Length
  132.             Dim IntResult As Integer
  133.             Dim BooL As Boolean = False
  134.             Do While BooL = False
  135.                 iPos = strSource.IndexOf(strStart, startPos)
  136.                 iEnd = strSource.IndexOf(strEnd, iPos + lenStart)
  137.                 If iPos <> -1 AndAlso iEnd <> -1 Then
  138.                     IntResult = IntResult + 1
  139.                     startPos = iEnd + 1
  140.                 Else
  141.                     BooL = True
  142.                 End If
  143.             Loop
  144.             Return IntResult
  145.         End Function
  146.  
  147.     End Structure
  148.  
  149. End Module

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут