Друзья, хотелось бы получать отзывы от тех кто скачал библиотеку, спасибо!
Пока работа встала, т.к. я пытаюсь создать из Silverlight class library еще и библиотечку, которую можно было бы прикручивать к серверной части... Буду рад помощи от всех желающих!
Требуется свежая голова (или две :) ) для работы над проектом

This is an Silverloght SDK for VKontakte social network. With this SDK you can create apps and games for this network using Silverlight v4.

Описание

Данная библиотека поможет Silverlight разработчикам реализовать свои приложения для социальной сети ВКонтакте.

Как все начиналось

Примерно с полгода назад, мне пришла в голову идея реализовать что нибудь для ВКонтакте, используя Silverlight. Но, как выяснилось, у Silverlight есть ограничение на кросдоменные запросы. Суть которого в том, что в корне домена, к которому производится запрос, должен был лежать файл clientaccesspolicy.xml, описывающий политику для клиентских Silverlight приложений.
После недолгого диалога с разработчиками ВКонтакте API, они добавили необходимый файл в корни доменов содержащих API.
http://api.vkontakte.ru/clientaccesspolicy.xml
http://api.vk.com/clientaccesspolicy.xml

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

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

Требования:

Visual Studio 2010 (включая Express)
Silverlight v4

Начало работы

  • Создайте новый проект WEB-приложения Silverlight (версия Silverlight должна быть не ниже 4й).
  • Скачайте библиотеку и подключите к проекту.
  • В файле MainPage.xaml.cs добавьте следующий код:
public partial class MainPage : UserControl
{
    APIConnection VK;
// продолжение
}
  • В коде конструктора MainPage() после инициализации компонентов добавьте инициализацию API:
public MainPage()
{
        InitializeComponent();
// Первый параметр - serverSecret
// Второй параметр - глобальный обработчик ошибок
// Если третий параметр (необязательный) установлен в true, то запуск приложения происходит в тестовом режиме
        VK = new APIConnection("", MainErrorHendler, true);
}
  • Далее можно вызывать либо уже реализованные функции API, например вот так:
private void send_Click(object sender, RoutedEventArgs e)
{
        try
        {
                // Метод загружает профиль текущего пользователя и при успешном выполнении вызывает 
                // функцию LoadProfileHandler передавая результат полученный от сервера VKAPI
                VK.LoadProfile( this.Dispatcher, LoadProfileHandler);                
        }
        catch (Exception ex)
        {
                MessageBox.Show(ex.Message);
        }
}
void LoadProfileHandler(Profile response)
{
        if (response != null)
        {
                MessageBox.Show(response.FirstName + "\r\n" + response.LastName);
        }
}
  • Либо, если функция еще не реализована или нужно передать серверу специфические данные, можно выполнить запрос напрямую:
private void send_Click(object sender, RoutedEventArgs e)
{
            DataProvider.AsyncApiResponse data = new DataProvider.AsyncApiResponse(LoadProfileHandler, dispatcher, callBack, errorCallBack);
            Dictionary<string, string> parameters = new Dictionary<string, string>();
            parameters.Add("uids", startInfo.viewer_id);
            parameters.Add("fields", "uid,first_name,last_name,nickname,domain,sex,photo");
            dataProvider.Request("getProfiles", data, parameters);
}

Last edited Feb 3, 2011 at 10:39 AM by RAMe0, version 15