Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Компонент для работы с api vkontakte.ru


Автор: halfhope 15.5.2011, 20:58
Написал компонент для D7, для работы с вконтакте api, не судите строго, это моя вторая работа с сетью, а уж тем более и воторой компонент. 

Свойства:
Код

   AppId:string;//application ID
   LoginOrEmail:string;//Логин
   Password:string;//Пароль 
   Proxy:Tproxy;//Настройки прокси
   Scope:TScope;//Маска настроек(прав) для приложения
   ApiServer:TvkApiServer ;//vk.com или vkontakte.ru
   ResponseType: TRespType;//формат ответа XML или JSON
   AppRegDialog:TAppRegDialog;//Настройки диалога получения прав.
   Logined:Boolean;//Залогинен или нет
   Allowed:Boolean;//Получил права или нет


Функции
Код

   function Login: Boolean;//Логин на сайт
   function LogOut:Boolean;//Выход
   function RegisterApplication:Boolean;//Процедура получения прав и ключа доступа
   function AppAlreadyRegistered:Boolean;//Процедура, которая проверяет, установлено ли у пользователя приложение
   function GetApi(method,parameters:string):string;//Возвращает ответ на запрос api функции
   function GetApi(method:string;parameters:TStrings):string;//Возвращает ответ на запрос api функции


События:
Код

   OnAccess;//при получении ключа доступа
   OnLogin;//при авторизации
   OnLogOut;//при выходе


Пример использования:
Код

   if vkCore1.Login then
      if vkCore1.RegisterApplication then
         ShowMessage('Можно выполнять api запросы');


Пример использования api запросов:
Код

   vkCore1.GetApi('friends.get','fields=online,education');


Примечания:
1. Если в Scope указать notify, тогда диалог авторизации будет вылазить каждый раз(рекомендуется убрать)
2. Если в Scope указать offline, тогда через час придется заново выполнять ф-ию RegisterApplication(рекомендуется убрать)
3. Компонент сам перехватывает капчу при api запросах и заново посылает запрос. 
4. Компонент не перехватывает капчу при авторизации.
5. Авторизация идет без использования ssl, ssl применяется только при api запросах.
6. Был написан только для Delphi 7, так что насчет совместимости с другими версиями ничего сказать не могу.

Для работы компонента необходимы:
1. OverbyteICS (http://www.overbyte.be/frame_index.html);
2. AsyncHttp (Мой первый компонент - оболочка для ICS)(http://forum.vingrad.ru/index.php?showtopic=307245&view=findpost&p=2339834).

Исходники прилагаются:

Автор: halfhope 27.5.2011, 14:18
Не забудьте в настройках своего проекта добавить defines - USE_SSL

Автор: metra52 10.4.2012, 19:42
У меня написал Delphi 7 - Unsupported OpenSSl version

Автор: gonzales 2.5.2012, 07:56
какой метод авторизации использован? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)