воскресенье, 21 октября 2012 г.

[beta] VkClient для Delphi

"Загорелся" идеей написать удобный для всех пользователей компонент для работы с ВК. Функций много, от банального постинга сообщений, видео, фото и т.п. до постановки лайков и участия в опросах!

Компонент создан с использованием synapse.

Рассмотрим создание программы на основе данного компонента которая будет одобрять заявки в друзья:

1. Подключим в uses: VkClient



2. Объявим переменные: vk:TVKClient; id:string; objlist:TStringList;
3. Вписываем код:

vk:=TVKClient.Create(nil); //создаём компонент
vk.Format:=XML; //настраиваем формат возвращаемых данных (JSON или XML)
vk.Login:='Ваш логин ВК';
vk.Password:='Ваш парольВК';

vk.OnLogin; //вызываем функцию авторизации
vk.friends_getRequests('', '', '', '', '', ''); //вызываем функцию которая получает заявки в друзья
objlist:=TStringList.Create;
objlist.Text:=vk.Response.Text; //в vk.Response находится ответ сервера после выполнения функций
while objlist.Count>0 do begin //цикл будет идти до тех пор пока не пробежит по всему списку id
  id:=Pars('<uid>', objlist[0], '</uid>'); //парсим id
  if Length(id)>5 then vk.friends_add(id, ''); //если это id значит добавляем его
  objlist.Delete(0);
end;

objlist.Free;
vk.Free;

Готово! Просто, не правда ли?

Теперь по поводу настроек:

1. Можно каждый раз не авторизироваться, а просто сохранить токен и использовать его потом, например:

После авторизации токен будет в переменной vk.VKToken (тип string), достаточно сохранить его и заменить:
vk.Login:='Ваш логин ВК';
vk.Password:='Ваш парольВК';

vk.OnLogin;
На:
 vk.VKToken:='xxxxxxxxxxxxxxxxxxxxxxxxxxx';
Просто, не правда ли?

 Компонент устанавливать не нужно, просто закиньте его в папку с программой!

Баги, пожелания и идеи новых функций (например одобрение заявок в друзья) пишите в комментариях, с удовольствием реализую!

41 комментарий:

  1. If onlogin then showmessage('good');

    Проверка Авторизации. Спасибо за компонент.

    ОтветитьУдалить
  2. когда будет бот для олайка???????уже надоело ждать!

    ОтветитьУдалить
    Ответы
    1. Дак ты не жди. ЁПТБЛЯ

      Удалить
    2. Олайк бананит юзеров и без бота. А вы все бот, бот. Олайк стал говном, забудьте про него.

      Удалить
    3. Есть бот для олайка. Функции: ставит лайки (500) и вступает в группы.Бесплатный. Обращайтесь http://vk.com/id107169912.

      Удалить
  3. да сделай пожалуйста свой обменник, мы знаем что ты можешь

    ОтветитьУдалить
  4. Из надежных источников узнал что бот скоро будет)Но он будет платный но очень качественный.Копите денежку)

    ОтветитьУдалить
    Ответы
    1. Из надёжных источников (с потолка) информацию брать не стоит т.к. для олайка я ничего больше делать не буду.

      Удалить
  5. чет я непойму ,это уже рабочий бот?или только описание как он будет работать?

    ОтветитьУдалить
    Ответы
    1. Это компонент для Delphi, читайте, не ленитесь.

      Удалить
  6. Ванс ты гений,сасибо тебе большое...

    ОтветитьУдалить
  7. Я один заметил что там dowload
    а не download

    ОтветитьУдалить
    Ответы
    1. Старая кнопочка, я тогда энглиш не знал. Если будет время то переделаю.

      Удалить
  8. У тебя с кодировкой проблемы начал писать граббер сделал свое приложений создал группу, все функции разобарал, но херня с кодировкой постит вот вместо русского вот так ?12?1?3?3?4?5

    ОтветитьУдалить
    Ответы
    1. С кодировкой всё норм. Но если же у вас какие то проблемы то попробуйте Utf8ToAnsi();

      Удалить
    2. Пробовал не поомогает я из мемо вывожу текст и постю его в группу и получается вопросики и цифры

      Удалить
    3. Да и VanS чет я не понял как вывести ответ например в XML в мемо от АПИ запроса. У меня чет не получается.

      Удалить
    4. Все кодировка на ВК просто utf-8, только теперь как ответ получить:)

      Удалить
    5. Ответ на первый вопрос: Попробуйте AnsiToUtf8

      Ответ на второй вопрос: vk.Format:=XML; Но не всегда сервер поддерживает XML

      Ответ на третий вопрос: ShowMessage(vk.Response.Text);

      Удалить
  9. Не робит твоя прога
    i d : = P a r s ( ' < u i d > ' , o b j l i s t [ 0 ] , ' < / u i d > ' ) ;
    [Error] Unit1.pas(46): Undeclared identifier: 'Pars'
    Что такое?

    ОтветитьУдалить
    Ответы
    1. Функция парсинга: http://www.vans-soft.ru/2011/10/pars.html

      Удалить
    2. Не работает потому что надо:
      1. Расприватить функцию в модуле
      2. Использовать vk.Pars при условии что vk:=TVKClient.Create(nil)

      Удалить
  10. Не работает потому что надо:
    1. Расприватить функцию в модуле
    2. Использовать vk.Pars при условии что vk:=TVKClient.Create(nil)

    ОтветитьУдалить
  11. Полезная вещь, спасибо!
    Было бы здорово добавить антигейт, прокси и обход 4 цифр(для не ру ip)

    ОтветитьУдалить
  12. Как не странно, но почему то не работает, работало наделю после перестало, либо дуров изменил API свой либо еще что то

    ОтветитьУдалить
  13. Продам бота для олайк, дешево.
    Обращаться сюда http://vk.com/id195132522

    ОтветитьУдалить
  14. хм чтото даже пройти авторизацию немогу ... OnLogin возвращает false ... что не так может быть ? Delphi 10 ... Логин и пароль проверил точно верные ... как посмотреть что возвращает сервер ?

    ОтветитьУдалить
  15. если мне на запрос вернулась капча ... как говорит документация надо повторить запрос с идом капчи и ответом на неё ... куда у вас записывать ответ и тд ...

    ОтветитьУдалить
  16. Как работает функция groups_getInvite?
    Может есть хелп к компоненту?

    ОтветитьУдалить
  17. для него прокси нужны ? имею в виду что после n кол-ва неверных запросов то вк блочит акк капчей ... здесь она выходит ? если да то как подкл прокси ?

    ОтветитьУдалить
    Ответы
    1. Это только бета версия компонента.
      На данный момент я уже прикрутил каптчу и осталось сделать только обработчик события.
      Прокси тоже будут, но только SOCKS 5

      Удалить
    2. значит она блочит после n количества ?

      Удалить
  18. сделал его многопоточным и очень долго идет .... иногда вообще дальше 1 акк не идет ... иногда все ок .... глюки )

    ОтветитьУдалить
  19. http://olike.ru/buy_groups.php надо лайки заробатывайте)

    ОтветитьУдалить
  20. Помогите разобраться с этой проблемой "id:=Pars"

    уже пол дня ни че не могу сделать
    [dcc32 Error] Unit1.pas(42): E2003 Undeclared identifier: 'Pars'

    ОтветитьУдалить
  21. Можно как-то выправить проблемы с кириллицей ?
    AnsiToUtf8 не помогает, такое ощущение что AnsiToUtf8 нужно вставить где-то в Response.Text

    ОтветитьУдалить
  22. Все отлично, с капчей бы еще))

    ОтветитьУдалить
  23. [dcc32 Fatal Error] VKClient.pas(6): F1026 File not found: 'C:\Users\Влад\Documents\RAD Studio\Projects\HTTPSend.dcu'
    Что с этим делать? Никогда с интернетом, INDY и прочей вещью не работал. помогите! Не найден файл HTTPSend.dcu. И где его брать?

    ОтветитьУдалить