среда, 4 июля 2012 г.

C# vk api Загрузка списка друзей

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

Первая часть статьи уже есть на этом блоге, где частично рассматривается работа с сервисом api контакта. ССЫЛКа

Здесь вы увидите пример работы именно с классом FriendsFactory.

Для работы необходимо делать импорт библиотек ApiCore и HttpDownloader.

Скачать их можно тут:
ApiCore.dll   54.0 KB
HttpDownloader.dll   11.5 KB


Исходники проекта лежат здесь:
GetFriends_VKAPI.rar   87.0 KB


Исходники функций:

        //Объявляем переменные
        private SessionInfo sessionInfo;
        private ApiManager manager;
        private bool isLoggedIn = false;
        private List<Friend> friendList;
        private FriendsFactory friendFactory;
        private Regex userIdCheck;

        public Form1()
        {
            InitializeComponent();
        }

        //Авторизация
        private void Reauth()
        {
            if (!this.isLoggedIn)
            {
                SessionManager sm = new SessionManager(1928531, Convert.ToInt32(ApiPerms.Audio | ApiPerms.ExtendedMessages | ApiPerms.ExtendedWall | ApiPerms.Friends | ApiPerms.Offers | ApiPerms.Photos | ApiPerms.Questions | ApiPerms.SendNotify | ApiPerms.SidebarLink | ApiPerms.UserNotes | ApiPerms.UserStatus | ApiPerms.Video | ApiPerms.WallPublisher | ApiPerms.Wiki));
                this.sessionInfo = sm.GetSession(SessionAuthType.WithBrowser);
                if (this.sessionInfo != null)
                {
                    this.isLoggedIn = true;
                }
            }

            if (this.isLoggedIn)
            {
                manager = new ApiManager(this.sessionInfo);
                manager.Timeout = 10000;
                this.listBox1.Enabled = true;
                this.friendFactory = new FriendsFactory(this.manager);
                this.userIdCheck = new Regex("([\\d])+$");
                this.GetFriendList();
            }
        }

        //Загрузка списка друзей и запись данных в виджет listBox
        private void GetFriendList()
        {
            try
            {
                this.listBox1.Items.Clear();
                this.friendList = this.friendFactory.Get(FriendNameCase.Nominative, null, null, null, new string[] { "uid", "first_name", "nickname", "last_name" });
                for (int i = 0; i < this.friendList.Count; i++)
                {
                    this.listBox1.Items.Add(this.friendList[i]);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Error loading friend list:\n" + e.Message);
            }
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            //Вызов функций
            this.Reauth();
            this.GetFriendList();
        }

7 коммент.:

Анонимный комментирует...

У меня вопрос, правда немного не в тему поста.
Можно ли с помощью библиотеки apiCore.dll загрузить фото с компьютера пользователя в альбом пользователя вконтакте? и как?)

Вячеслав комментирует...

В данном случае я работал над этим вопросом, в библиотеке apicore есть баг и кокраз в этом месте (работа с загрузкой фотографий). поэтому сделать это не выйдет с этой либой, придётся писать собственный скрипт заного. выделю в этой теме статью.

Анонимный комментирует...

У меня при запуске программы выскакивает окно с разрешением, я разрешаю, вылетает ошибка скрипта и все

Анонимный комментирует...

в этой библиотеке осуществлен старый метод авторизации..

Александр комментирует...

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

Анонимный комментирует...

Что нужно поменять в коде чтобы получить свои аудиозаписи, и ссылку для скачивания на них? VS 2012 ?

Анонимный комментирует...

SAS MESSAG

Отправить комментарий

TROCKII БЛОГ Copyright © 2012 | Template created by Lev Trockii |