Что нового

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

Fever

Скриптер
Сообщения
308
Репутация
112
[info]
iv1xUf15siHUg.png

AutoIt: 3.3.6.1
Версия: 0.2
Категория: Автоматизация, Сеть
Описание: Данная библиотека демонстрирует методы работы с Vkontakte API.
Авторы: Medic84, Fever
Ссылка: GitHub
[/info]

Где взять APP_ID? И что это вообще?:
Общение программы с API Vkontakte происходит через приложение, его необходимо создать (в нашем случае Standalone-приложение). В примере в качестве APP_ID указано id созданного мной ранее приложения.
http://vkontakte.ru/editapp?act=create&site=1

Список функций доступных на данный момент:
_VK_SignIn() - Совершает авторизацию на сайте ВКонтакте
_VK_getProfiles() - Возвращает расширенную информацию о пользователях.
_VK_getUserSettings() - Получает настройки текущего пользователя в данном приложении.
_VK_getUserBalance() - Возвращает баланс текущего пользователя на счету приложения в сотых долях голоса.
_VK_friendsGet() - Возвращает список идентификаторов друзей пользователя или расширенную информацию о друзьях пользователя
_VK_friendsGetOnline() - Возвращает список идентификаторов, находящихся на сайте друзей, текущего пользователя.
_VK_friendsGetMutual() - Возвращает список идентификаторов общих друзей между парой пользователей.
_VK_friendsAddList() - Создает новый список друзей у текущего пользователя.
_VK_groupsGet() - Возвращает список групп указанного пользователя.
_VK_groupsGetByID() - Возвращает информацию о заданной группе или о нескольких группах.
_VK_audioGet() - Возвращает список аудиозаписей пользователя или группы.
_VK_statusGet() - Получает статус пользователя.
_VK_statusSet() - Устанавливает новый статус текущему пользователю.
_VK_photosGetAlbums() - Возвращает список альбомов пользователя.
_VK_photosGet - Возвращает список фотографий в альбоме.
_VK_photosGetAlbumsCount() - Возвращает количество доступных альбомов пользователя.
_VK_photosGetById() - Возвращает информацию о фотографиях по их идентификаторам.
_VK_photosGetAll() - Возвращает все фотографии пользователя или группы в антихронологическом порядке.
_VK_photosСreateAlbum() - Создает пустой альбом для фотографий.
_VK_photosEditAlbum() - Создает пустой альбом для фотографий.
_VK_wallPost() - Публикует новую запись на своей или чужой стене.
_VK_wallDelete() - Удаляет запись со стены пользователя.
_VK_likesAdd() - Добавляет указанный объект в список Мне нравится текущего пользователя.
_VK_likesDelete() - Удаляет указанный объект из списка Мне нравится текущего пользователя.
_VK_likesIsLiked() - Проверяет находится ли объект в списке Мне нравится заданного пользователя.
_VK_likesGetList() - Получает список идентификаторов пользователей, которые добавили заданный объект в свой список Мне нравится.

Подробное описание\небольшую документацию постараюсь написать в ближайшее время.

История версий:
0.1 - Первый релиз
0.2 - Полностью переработанная версия с добавлением функций
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,669
Репутация
2,463
1. Отсутствует Encoding.au3.

2. Название функций неудачное, API это общее понятие, нужно хотя бы через «_VK...».


Добавлено:
Сообщение автоматически объединено:

И ещё, я бы не стал это делать через IE, я бы также не стал этим пользоваться по этой же причине.


Добавлено:
Сообщение автоматически объединено:

Если Encoding.au3 нужен только для _Encoding_UTF8ToANSI, то проще использовать второй параметр у BinaryToString:

Код:
Return BinaryToString(InetRead(.....), 4)
 
Автор
F

Fever

Скриптер
Сообщения
308
Репутация
112
CreatoR [?]
Если Encoding.au3 нужен только для _Encoding_UTF8ToANSI, то проще использовать второй параметр у BinaryToString:
спасибо, учту


а в ВК авторизироватся можно иначе? :blink:
насколько я читал их документацию, то нужно именно так..
http://vkontakte.ru/developers.php?id=-1_37230422&s=1


Добавлено:
Сообщение автоматически объединено:

CreatoR [?]
хотя бы через «_VK...»
исправил
проще использовать второй параметр у BinaryToString
также исправил
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,580
Репутация
335
Очень полезная вещь. Самому очень пригодилась, и я помогу тебе ее дописать (если конечно требуется помощь) =)

Первое с чего лучше начать - это возвращение значений функциями. Лучше сразу возвращать массивом, то что можно вообще вернуть.
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
можешь добавить функцию friends.addList – создаёт новый список друзей. Отсортировал список друзей по определенным параметрам но никак не получилось добавить их в отдельный список...
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,580
Репутация
335
Guezt Gutsy
Такой API функции нет Вконтакте.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,580
Репутация
335
Код:
Func _VK_friendsAddList($_sAccessToken, $sName, ByRef $sArray)
	Local $sFriendsdotString = ""
	If IsArray($sArray) Then
		For $i = 0 To UBound($sArray) - 1
			$sFriendsdotString &= $sArray[$i] & ","
		Next
		$sFriendsdotString = StringTrimRight($sFriendsdotString, 1)
	Else
		$sFriendsdotString = $sArray
	EndIf
	Return BinaryToString(InetRead("https://api.vkontakte.ru/method/friends.addList.xml?access_token=" & $_sAccessToken & "&name=" & $sName & "&uids=" & $sFriendsdotString), 4)
EndFunc


Где $_sAccessToken - доступ
$sName - Имя для нового списка друзей
$sArray - массив с uid'ами друзей, которых необходимо внести в список.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,580
Репутация
335
madmasles
Нет. На эту ф-ю нет ограничений. Вы привели ссылку не на ту функцию.
http://vkontakte.ru/pages?oid=-1&p=friends.addList
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
Можно я еще раз задам тот же самый вопрос, ребята при всем моем уважении я не думаю, что я на столько тупой и этот вариант попробовал можно РАБОЧИЙ пример привести пожалуйста я попробовал но ничего не вышло ни с вашим вариантом ни с моим - кому не трудно сделайте рабочий вариант и приложите т.к. у меня 100% не работает :( и сделал практически идентичное за исключением переменных

запрос идет в UTF8 список пользователей не может заканчиваться на ","

то есть мой вариант функции был таков:
Код:
Func _VK_friendsAddList($_sAccessToken, $sName, $sArray)
    Local $sFriendsdotString = ""
    For $i = 0 To UBound($sArray) - 1
		If $i <> UBound($sArray)-1 Then
        $sFriendsdotString &= $sArray[$i] &   "%2C"
	Else
		$sFriendsdotString &= $sArray[$i]
		EndIf
    Next
    $sFriendsdotString = StringTrimRight($sFriendsdotString, 1)
    Return BinaryToString(InetRead("https://api.vkontakte.ru/method/friends.addList.xml?access_token=" & $_sAccessToken & "&name=" & $sName & "&uids=" & $sFriendsdotString), 4)
EndFunc


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

Medic84

Омега
Команда форума
Администратор
Сообщения
1,580
Репутация
335
все список получает парсит ставит запятые между ними, но создать лист никак не хочет... я в тупике уже весь день бьюсь походу сегодня не мой день...
Разрешение то выставили? Битовая маска должна быть с содержанием 2


Добавлено:
Сообщение автоматически объединено:

Guezt Gutsy
Зачем Вам "%2C" там написано через запятую, значит через запятую.
И раз Вы переписали код - зачем Вы обрезаете последний правый символ?!
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
Medic84

разрешение стоит на друзей\фото в общем как в примере не трогал даже пробовал менять scope на scope=Friends - ошибка та же самая...

если ставить через запятую то она отправляется как ANSI и вообще не проходит запрос, если вставить "%2C" что и есть запятая - то запрос делает но выдает ошибку 20 типа : permission to perform this action is denied for non-standalone applications

но если верить параметрам авторизации то не должно выдавать ошибку...
* Если Вы разрабатываете Standalone-приложение и параметр response_type = "token", то в качестве параметра redirect_uri необходимо указывать адрес http://api.vk.com/blank.html, на который будут переданы данные авторизации. Обратите внимание, что только в данном случае у Вас будет возможность использовать расширенные методы работы с API.


Добавлено:
Сообщение автоматически объединено:

Medic84 [?]
И раз Вы переписали код - зачем Вы обрезаете последний правый символ?!

потому что список ID должен идти так uids=12345,67890,54321 - то есть в конце не нужна запятая
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,580
Репутация
335
Код:
If $i <> UBound($sArray)-1 Then
        $sFriendsdotString &= $sArray[$i] &   "%2C"
    Else
        $sFriendsdotString &= $sArray[$i]
        EndIf

Этот код тогда для чего написали? Он Вам и не даст этого сделать.
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
Medic84
если не сложно напиши пример пожалуйста рабочий максимум что я добился это вот:
4099886484_20120113_003854.png


Добавлено:
Сообщение автоматически объединено:

Medic84 [?]
Код: AutoIt [Выделить] If $i <> UBound($sArray)-1 Then $sFriendsdotString &= $sArray[$i] & "%2C" Else $sFriendsdotString &= $sArray[$i] EndIfЭтот код тогда для чего написали? Он Вам и не даст этого сделать.

этот код добавляет через запятую ID пользователей если пользователь Последний в массиве то не ставит запятую... не знаю как объяснить иначе... если массив из 10 id то будет делать так 1,2,3,4,5,6,7,8,9,0(и тут пропустит запятую или %2С - разницы нет запро,с как видно из скрина проходит в обоих случаях но ругается на метод авторизации...)
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,580
Репутация
335
Guezt Gutsy
Вы зарегистрировали приложение вконтакте? API Key получили? У Вас проблема авторизации.

А за удаление запятой в конце отвечает строка
Код:
$sFriendsdotString = StringTrimRight($sFriendsdotString, 1)

Для чего Вы добавляли тот код - я не понимаю.


Добавлено:
Сообщение автоматически объединено:

Код:
Func _VK_friendsAddList($_sAccessToken, $sName, $sArray)
	Local $sFriendsdotString = ""
	If IsArray($sArray) Then
		For $i = 0 To UBound($sArray) - 1
			$sFriendsdotString &= $sArray[$i] & ","
		Next
		$sFriendsdotString = StringTrimRight($sFriendsdotString, 1)
	Else
		$sFriendsdotString = $sArray
	EndIf
	Return BinaryToString(InetRead("https://api.vkontakte.ru/method/friends.addList.xml?access_token=" & $_sAccessToken & "&name=" & $sName & "&uids=" & $sFriendsdotString), 4)
EndFunc


Только что проверил у себя. Пример идеально работает. Проверял на 10 людях список был создан.
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
Medic84
ну не цепляйся ты к тому как я получаю список ID пожалуйста - признаю свою ошибку был невнимателен не видел отсичение 1 символа, да API Key получил зарегистрировал приложение как Iframe ключ получает добавь пожалуйста 1 эту функцию в пример с теми двумя моими id из окна ошибки - покажи что работает метод потому что я даже список не могу получить ни со своего приложения ни с того что в примере...


Добавлено:
Сообщение автоматически объединено:


Medic84 [url_ex=javascript:qq.OpenLink('[url=http://autoit-script.ru/index.php/topic,7517.msg56237.html#msg56237']Re: VK API UDF - библиотека для работы с Vkontakte API)][?][/url_ex]
Только что проверил у себя. Пример идеально работает. Проверял на 10 людях список был создан.
Будь человеком - не мучай меня, пожалуйста, выложи пример рабочий может я уже чего намудрил :wacko:

все... разобрался - жесть просто спасибо большое за терпение!!! :wacko:
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,580
Репутация
335
Guezt Gutsy
Слава Богу. Где намудрили то?
 
Верх