Программирование
Веб программирование

Скачивание последней песни с Вконтакте

 
 

Всем привет. Сегодня мы будем писать программку, которая позволяет скачивать последнюю песню с сайта Вконтакте.

Для этого нам понадобиться:

  1. Создать приложение на сайте Вконтакте.
  2. Разместить на форме элементы управления:  Button; WebBrowser.

И так начнем. Для начала нам необходимо создать приложение на сайте Вконтакте. Для этого переходим по ссылке:

https://vk.com/editapp?act=create

Создаем Standalone-приложение. (При создании на телефон, указанный при регистрации, придет смс сообщение, в нем будет код, который необходимо будет набрать).

Создав приложение переходим в его настройки, там нам понадобиться ID, сохраняем его в блокнот.

Маленькие настройки перед началом.

  1. Button1 в свойстве текст указываем: "Скачать"

И всё можно приступать к коду программы:

Public Class Form1 Dim token$, saveXml$ 'Обьявляем переменные

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
WebBrowser1.Navigate("http://api.vkontakte.ru/oauth/authorize?client_id=4031068&scope=audio _uri=http://api.vkontakte.ru/blank.html&display=page&response_type=token") 'Авторизация в вконтакте, где client id=4031068 это id нашей программы, который мы записывали в блокнот, а scope=audio права доступа к аудио.
End Sub
Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
token = GetBetween(WebBrowser1.Url.ToString, "access_token=", "&expires") 'Парсим специальный ключ(Token), с которым мы будем обращаться к Вконтакте.
Dim x As New Xml.XmlDocument
x.Load("https://api.vkontakte.ru/method/audio.get.xml?access_token=" & token) 'Обращаемся к Вконтакте при помощи API audio.get
saveXml = x.InnerXml 'Скачиваем Xml страниц
End Sub
Public Function GetBetween(ByRef strSource As String, ByRef strStart As String, ByRef strEnd As String, Optional ByRef startPos As Integer = 0) As String 'Функция парса.
Dim iPos As Integer, iEnd As Integer, lenStart As Integer = strStart.Length
Dim strResult As String = String.Empty
iPos = strSource.IndexOf(strStart, startPos)
iEnd = strSource.IndexOf(strEnd, iPos + lenStart)
If iPos <> -1 AndAlso iEnd <> -1 Then
strResult = strSource.Substring(iPos + lenStart, iEnd - (iPos + lenStart))
End If
Return strResult
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
My.Computer.Network.DownloadFile(GetBetween(saveXml, "", "?extra="), "C:test.mp3")
Скачиваем последнюю композицию. GetBetween(saveXml, "", "?extra=") это мы парсим url,
'с которого будет происходить скачивание файла, а "C:test.mp3" это путь куда он будет сохранен и имя этого файла.
End Sub
End Class





Вот и всё. Что-то странное здесь творится, когда вставляешь код.


Есть вопросы? Спроси на нашем форуме!!
NoMercy50 [16.04.2014 21:19]

Удалите, пожалуйста, статью. Там куча ошибок в коде.

Stertor370 [16.04.2014 21:24]

Блядь, ну почему все так любят пользоваться webbrowser-ом, когда есть webclient? Его не видно, к тому же там и прокси можно прикрутить.

DaFri [13.07.2014 14:36]

Кто не понял то можно получать всё(кроме пароля), от сообщений до аудио.
где api.vkontakte.ru/method/audio.get.xml?ac заменить audio.get.xml на другой запрос...
rghost(точка)ru/56869374 - пример получения

serega110 [17.09.2014 00:04]

Подробнее можно узнать тут: vk.com/dev



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.