Авторизация



Задай мне вопрос

Голосования

Вы любите, когда вам чешут спинку? ;)
 

ГлавнаяПроектыВконтакте C# api → История возникновения C# библиотеки для работы с API Вконтакте, ее описание, возможности, планы на будущее
История возникновения C# библиотеки для работы с API Вконтакте, ее описание, возможности, планы на будущее E-mail
User Rating: / 4
PoorBest 
Written by xternalx   
Thursday, 30 September 2010 14:04

Вступление

Хочу оговориться сразу, что библиотека для работы с api вконтакте, которую я изначально разрабатывал на C# (.net 2.0) не является для меня приоритетной. Я занимаюсь этой библиотекой в свободное время, или когда скучно.

История библиотеки C# api вконтакте

Изначально эта библиотека разрабатывалась для предоставления пользователю низкоуровневого функционала для работы с api вконтакте. Т.е. пользователь библиотеки сам формировал запрос используя методы Method(string methodName), и передавая параметры используя метод Param(string paramName, string paramValue). На выходе пользователь получал ответ от api в виде xml или json(в зависимости от настроек). Так появился ApiManager - базовый класс библиотеки. Именно на нем основана работа в дальнейшем появившихся в библиотеке оберток над основными методами api вконтакте. Классы MessageFactory, ActivityFactory, и прочие фабрики формируют запросы к api вконтакте используя экземпляр ApiManager, а полученный ответ обрабатывают и на его основе формируют объектную модель ответов.

 

Появление фабрик в библиотеке. Наглядные примеры

После некоторых экспериментов с api вконтакте я решил дописывать свою библиотеку таким образом, чтобы с api можно было работать на уровне объектов. Допустим, мы хотим получить список входящих сообщений. Изначально это можно было сделать так:

ApiManager manager = new ApiManager(<app_id>, <session_data>);
string xmlResp = manager.Method("messages.get").Execute();
XmlDocumend doc = new XmlDocument();
doc.LoadXml(xmlResp);
XmlNodeList messages = doc.SelectNodes("/response/message");
// и так далее

Как только я ввел фабрики, получение входящих сообщений сразу упростилось:

MessagesFactory mf = new MessagesFactory(manager);
List<Message> messages = mf.Get(MessageType.Incoming, null, null, null, null, null);

Теперь у нас есть список входящих сообщений. Они никак не отфильтрованы, и возвращены только последние 100 штук.

Чтобы получить какие то другие сообщения, с учетом фильтров вместо последних 5 параметров, которые в примере установлены в null, можно указать какие то данные.

Все методы фабрик и классов задокументированы при помощи стандартного XmlDoc Visual Studio.

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

На каких языках можно разрабатывать свои приложения с моей библиотекой

На любых managed языках, которые используют платформу .NET 2.0 и выше.

Уже реализовано в библиотеке

В версии моей библиотеки, которая выйдет под версией 0.6.2 beta реализованы следующие фабрики:

 

  • ActivityFactory - позволяет работать со статусами
  • FriendsFactory - позволяет работать со списками друзей
  • MessagesFactory - позволяет работать с личными сообщениями
  • WallFactory - позволяет работать со стеной
  • OffersFactory - позволяет работать с сервисом предложений
  • QuestionsFactory - позволяет работать с сервисом вопросов

Заключение

По поводу реализации оболочек над оставшимися методами - ничего точно сказать пока еще не могу. Будет желание и время - сделаю, не будет - кто нибудь другой реализует :))
Кроме того, я задумался о модификации SessionManager - класса для авторизации в api. Сейчас по умолчанию доступен только вариант авторизации через браузер. Я вынашиваю планы по модификации класса таким образом, чтобы авторизоваться можно было не только через браузер. Посмотрим, что из этого получится :))
Следите за обновлениями! Новую версию всегда можно найти здесь

 


Last Updated on Thursday, 30 September 2010 14:58
 

Comments  

 
0 # Дмитрий 2011-01-09 20:09
мда, довольно интересно... ну ты какой то виджет или софтину написал...? Или просто так разрабатываешь?
Reply | Reply with quote | Quote
 
 
0 # xternalx 2011-01-09 22:55
просто так пишу. Вчера зарелизил на его основе аудио довнлоадер. Он не умеет качать искать видео на ютубе, он делает то, для чего предназначался. http://dl.dropbox.com/u/2414078/AudioDownloader07.7z - если интересно ;)
Reply | Reply with quote | Quote
 
 
0 # Демьяненко Илья 2011-01-17 21:35
Где можно увидеть эту самую документацию? IntelliSense в VS2010 подсказывает только имя функции и типы аргументов, но не описание.
Reply | Reply with quote | Quote
 
 
-1 # xternalx 2011-01-18 00:07
Спасибо за замечание. Документация появится, но чуть позже. А вообще, названия всех методов совпадают с названиями методов из api -)
Reply | Reply with quote | Quote
 

Add comment


Security code
Refresh