Что нового

VK API UDF - библиотека для работы с Vkontakte API

BestProTop

http://www.about.me/bestprotop
Сообщения
28
Репутация
3
Ребят, пардонте 8)
У Вас работа над этой удф в какой стадии? 8)

я в не дописал функции по аудио, видео, друзьям и группам...

1. Стоит ли выложить? 8)
2. Каrие функции вы дополнили или собираетесь дополнить? 8)
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
BestProTop
посмотри что уже готово и добавь если есть что-то, чего там еще нету))
 

BestProTop

http://www.about.me/bestprotop
Сообщения
28
Репутация
3
Ок 8)
Ток ногами потом не бете плз 8)

Мой кодинг зачастую аморален и губителен 8)

====

з.ы. - текст ща в читебильный вид переведу и дополню.... 8)
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
BestProTop
Что бы вносить изменения, лучше привести код в общий вид. Так как сделаны все функции у меня. Иначе мне придется их исправлять...
 

BestProTop

http://www.about.me/bestprotop
Сообщения
28
Репутация
3
Вот функции для работы с видео, аудио и группами:

Код:
#region Videos Functions
Func _VK_videoGet($_sAccessToken, $_Videos = "", $_sUID = "", $_gid = "", $_iID = "", $_width = "", $_iExtended = "", $_iCount = "", $_iOffset = "")
;**************************************************************************************************************************************************
;										Параметры
; videos
;		перечисленные через запятую идентификаторы – идущие через знак подчеркивания id пользователей, которым принадлежат видеозаписи, и id самих видеозаписей. Если видеозапись принадлежит группе, то в качестве первого параметра используется -id группы.
;		Пример значения videos: -4363_136089719,13245770_137352259.
; uid
;		id пользователя, видеозаписи которого нужно вернуть. Если указан параметр videos, uid игнорируется.
; gid
;		id группы, видеозаписи которой нужно вернуть. Если указан параметр videos, gid игнорируется.
; aid
;		id альбома видеозаписи из которого нужно вернуть.
; width
;		требуемая ширина изображений видеозаписей в пикселах. Возможные значения - 130, 160 (по умолчанию), 320.
; count
;		количество возвращаемых видеозаписей (максимум 200).
; offset
;		смещение относительно первой найденной видеозаписи для выборки определенного подмножества.
;
;										Результат
;	Возвращает массив из количества найденных видеозаписей и объектов с видеоозаписями, каждый из которых имеет поля:
;	vid, owner_id, title, description, duration, link, image, date, player.
;
;	Поле player содержит адрес страницы видеоплеера, который можно использовать для проигрывания видеозаписи в браузере пользователя. Видеоплеер поддерживает проигрывание при помощи HTML5 и Flash и всегда масштабируется по размеру окна.
;**************************************************************************************************************************************************

Local $sReturn, $sResponse
	
    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/video.get.xml?videos=" & $_Videos & "&uid=" & $_sUID & "&gid=" & $_gid & "&aid=" & $_iID & "&with=" & $_width & "&count=" & $_iCount & "&offset=" & $_iOffset & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        Return $sResponse
    EndIf

EndFunc   ;==>_VK_videoGet


Func _VK_videoSearch($_sAccessToken, $_SearchText, $_sort = "", $_hd = "", $_iCount = "", $_iOffset = "")
;**************************************************************************************************************************************************
;										Параметры
; q
;	строка поискового запроса. Например, The Beatles.
; sort
;	Вид сортировки. 0 - по дате добавления видеозаписи, 1 - по длительности, 2 - по релевантности.
; hd
;	Если не равен нулю, то поиск производится только по видеозаписям высокого качества.
; count
;	количество возвращаемых видеозаписей (максимум 200).
; offset
;	смещение относительно первой найденной видеозаписи для выборки определенного подмножества.
;
;										Результат
;	Возвращает массив объектов, каждый из которых имеет поля:
;	id, title, description, owner_id, duration, date, thumb, player.
;
;	Поле player содержит адрес страницы видеоплеера, который можно использовать для проигрывания видеозаписи в браузере пользователя. Видеоплеер поддерживает проигрывание при помощи HTML5 и Flash и всегда масштабируется по размеру окна.
;**************************************************************************************************************************************************

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/video.search.xml?q=" & $_SearchText & "&sort=" & $_sort & "&hd=" & $_hd & "&count=" & $_iCount & "&offset=" & $_iOffset & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "response")
        Return $sResponse
    EndIf

EndFunc   ;==>_VK_videoSearch

Func _VK_videoAdd($_sAccessToken, $_vid, $_oid)

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/video.add.xml?vid=" & $_vid & "&oid=" & $_oid & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "response")
        Return $sResponse
    EndIf

EndFunc   ;==>_VK_videoAdd





Func _VK_videoGetAlbums($_sAccessToken, $_sUID = "", $_gid = "", $_iCount = "", $_iOffset = "")

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/video.getAlbums.xml?uid=" & $_sUID & "&gid=" & $_gid & "&count=" & $_iCount & "&offset=" & $_iOffset & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "response")
        Return $sResponse
    EndIf

EndFunc   ;==>_VK_photosGetAlbums


Func _VK_videoAddAlbums($_sAccessToken, $_title , $_gid = "")

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/video.addAlbum.xml?title=" & $_title & "&gid=" & $_gid & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "album_id")
        Return $sReturn[0]
    EndIf

EndFunc   ;==> _VK_videoAddAlbums

Func _VK_videoMoveToAlbum($_sAccessToken, $_vids ,$_album_id, $_gid = "")

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/video.moveToAlbum.xml?vids=" & $_vids & "&album_id=" & $_album_id & "&gid=" & $_gid & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "response")
        Return $sResponse
    EndIf

EndFunc   ;==> _VK_videoMoveToAlbum

Func _VK_videoGetUserVideos($_sAccessToken, $_uid = "", $_iOffset = "", $_iCount = "")

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/video.getUserVideos.xml?uid=" & $_uid & "&offset=" & $_iOffset & "&count=" & $_iCount  & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "response")
        Return $sResponse
    EndIf

EndFunc
#endregion Videos Functions


#region Audio Functions
Func _VK_audioGet($_sAccessToken, $_uid = "", $_gid = "", $_album_id = "", $_aids = "", $_need_user = "", $_iCount = "", $_iOffset = "")

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/audio.get.xml?uid=" & $_uid & "&gid=" & $_gid & "&album_id=" & $_album_id "&aids=" & $_aids & "&need_user=" & $_need_user & "&count=" & $_iCount & "&offset=" & $_iOffset & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "response")
        Return $sResponse
    EndIf

EndFunc   ;==>_VK_audioGet

Func _VK_audioGetById($_sAccessToken, $_audios)

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/audio.getById.xml?audios=" & $_audios & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "response")
        Return $sResponse
    EndIf

EndFunc   ;==>_VK_audioGetById

Func _VK_audioSearch($_sAccessToken, $_SearchText, $_auto_complete="" , $_sort = "", $_lyrics = "0", $_iCount = "", $_iOffset = "")

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/audio.search.xml?q=" & $_SearchText & "&auto_complete=" & $_auto_complete & "&sort=" & $_sort & "&lyrics=" & $_lyrics & "&count=" & $_iCount & "&offset=" & $_iOffset & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "response")
        Return $sResponse
    EndIf

EndFunc   ;==>_VK_audioSearch

Func _VK_audioAdd($_sAccessToken, $_aid, $_oid, $_gid = "")

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/audio.add.xml?aid=" & $_aid & "&oid=" & $_oid & "&gid" & $_gid & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "response")
        Return $sResponse
    EndIf

EndFunc   ;==>_VK_audioAdd
#endregion Audio Functions



#region Groups Functions
Func _VK_GroupsGet($_sAccessToken,  $_uid = "", $_extended = "0", $_filter = "groups", $_fields = "description")

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/groups.get.xml?uid=" & $_uid & "&extended=" & $_extended & "&filter=" & $_filter & "&fields=" & $_fields  & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "response")
        Return $sResponse
    EndIf

EndFunc   ;==>_VK_videoGet

Func _VK_GroupsGetById($_sAccessToken,  $_gid = "",  $_fields = "description")

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/groups.getById.xml?gid=" & $_gid & "&fields=" & $_fields  & "&access_token=" & $_sAccessToken), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
        $sReturn = _CreateArray($sResponse, "response")
        Return $sResponse
    EndIf

EndFunc 
#endregion Groups Functions


#region _VK_Api_Method
;METHOD_NAME – название метода из списка функций API,
;PARAMETERS – параметры соответствующего метода API,
;ACCESS_TOKEN – ключ доступа, полученный в результате успешной авторизации приложения.
Func _VK_Api_Method($ACCESS_TOKEN,  $METHOD_NAME,  $PARAMETERS='')

	Local $sReturn, $sResponse

    $sResponse = BinaryToString(InetRead("https://api.vk.com/method/" & $METHOD_NAME & "?" & $PARAMETERS &  "&access_token=" & $ACCESS_TOKEN), 4)
    If _VK_CheckForError($sResponse) Then
        Return SetError(1, 0, _VK_CheckForError($sResponse))
    Else
		$sReturn = _CreateArray($sResponse, "response")
	EndIf

	Return $sResponse
EndFunc  
#endregion _VK_Api_Method
 

SECTOR

Продвинутый
Сообщения
399
Репутация
59
OffTopic:
Medic84
какой страшный этот GidHub. Такие сложные сайты губительны для обычных скриптеров ;D
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
SECTOR [?]
Такие сложные сайты губительны для обычных скриптеров
Такие сложные сайты помогают создавать безотказные вещи :smile:
 

Leagnus

Новичок
Сообщения
8
Репутация
0
Простите нуба: создал standalone-приложение,
запускаю _VK_SignIn – вижу экран запроса доступа, разрешаю доступ – и всё,
"Эта веб-страница не найдена", "HTTP 400 - ошибочный запрос"... :stars:

на самом деле, если скормить браузеру всю строку – получаю после разрешения
в адресной строке – https://oauth.vk.com/blank.html#code=...
в браузере – "Login success"
 

Gzzk

Новичок
Сообщения
104
Репутация
1
Извиняюсь за некропостинг,но привидите пожалуйста пример использования функции _VK_likesAdd().
Очень нужно.
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
[box title=Список типов Like-объектов]
На данный момент в API поддерживается работа со следующими типами Like-объектов, которые используются на основном сайте:

Идентификатор Расшифровка типа объекта
post запись на стене пользователя или группы
comment комментарий к записи на стене
photo фотография
audio аудиозапись
video видеозапись
note заметка
sitepage страница сайта, на котором установлен виджет «Мне нравится»
[/box]
Код:
_VK_likesAdd($sAccessToken, 'post', ид записи, ид хозяина записи)
 

Gzzk

Новичок
Сообщения
104
Репутация
1
А как можно со страницы с лайком добыть ID записи и юзера функциями _IE*?
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Gzzk
Пишите в другую тему..
 

Gzzk

Новичок
Сообщения
104
Репутация
1
Будет ли реализованна функция add.friends?
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
Gzzk
Гораздо быстрее самому сделать из какой-нибудь другой :smile:
 
G

GenoTIP

Гость
Запускаю Example скрипты и в обоих ошибка в C:\AutoIt3\Include\VK_API.au3 (572) : ==> Subscript used with non-Array variable.:
Для Example New.au3
Код:
$sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/status.get.xml?uid=" & $_sUID & "&access_token=" & $_sAccessToken[1]), 4)
$sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/status.get.xml?uid=" & $_sUID & "&access_token=" & $_sAccessToken^ ERROR


и для Example.au3
Код:
$sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/audio.get.xml?access_token=" & $_sAccessToken[1] & "&uid=" & $_sUID & "&gid=" & $_sGID & "&aids=" & $_sAIDs & "&need_user=" & $_iNeed_User & "&album_id=" & $_iAlbumID & "&count=" & $_iCount & "&offset=" & $_iOffset), 4)
$sResponse = BinaryToString(InetRead("https://api.vkontakte.ru/method/audio.get.xml?access_token=" & $_sAccessToken^ ERROR

Происходит это после авторизации и подтверждения получения доступа к ВКонтакте.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Старый пример не работает с новой версией библиотеки. Уберите квадратные скобки.
 
G

GenoTIP

Гость
Эти квадратные скобки? $_sAccessToken[1], да это помогает.. но при открытие интерфейса Example скрипта в editbox статуса написано, что токен-доступа не правильный, но я его нигде и не задавал, к тому же для того чтобы извлечь информацию о пользователе, судя по udf, токен не нужен, можно рабочий пример example для UDF c github ?
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
GenoTIP
Я поправил в гитхабе и пример и библиотеку. Только есть одно но. Пока не решил почему при каждом запуске нужно подтверждать разрешения.
 
G

GenoTIP

Гость
Раньше такого не было? может с печеньками что-то?
 
Верх