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

Прежде всего нужно создать приложение здесь.



И из настроек только что созданного приложения взять App Id.



Теперь можно переходить непосредсвенно к коду.

Создадим консольное приложения .net core и добавим зависимость VkNet.



Создадим экземпляр VkApi.

VkApi api = new VkApi();


Теперь необходимо авторизоваться.


        api.Authorize(new ApiAuthParams()
            {
                Login = "+79*******", 
                Password = "***",
                ApplicationId = 684***,
                Settings = Settings.All
            });

Получим список из 20 последних диалогов

var dialogs = api.Messages.GetConversations(new GetConversationsParams());

А теперь получим 20 последних сообщений из первого диалога.

var messages = api.Messages.GetHistory(new MessagesGetHistoryParams()
                {PeerId = dialogs.Items[0].Conversation.Peer.Id});

И, пожалуй, напечатаем результаты.

foreach (var msg in messages.Messages)
            {
                Console.WriteLine(msg.Text);
            }

И отправим тестовое сообщение автору первого предыдущего сообщения.


           api.Messages.Send(new MessagesSendParams()
            {
                 // ну или подставить сюда ид из диалога
                PeerId = messages.Messages.First().Id,
                Message = "Test",
                RandomId = new Random().Next()
            });



Как пример:



И вот такой конечный код мы получили

тут

           VkApi api = new VkApi(); 
            api.Authorize(new ApiAuthParams()
            {
                Login = "*", 
                Password = "*",
                ApplicationId = *,
                Settings = Settings.All
            });
            var dialogs = api.Messages.GetConversations(new GetConversationsParams());
            var messages = api.Messages.GetHistory(new MessagesGetHistoryParams()
                {PeerId = dialogs.Items[0].Conversation.Peer.Id});
            Console.OutputEncoding = Encoding.UTF8;
            foreach (var msg in messages.Messages)
            {
                Console.WriteLine(msg.Text);
            }

            api.Messages.Send(new MessagesSendParams()
            {
                PeerId = messages.Messages.First().Id,
                Message = "Test",
                RandomId = new Random().Next()
            });


P.S.

Поддержку можно найти тут.

Комментарии (2)


  1. xeleos
    04.02.2019 22:37

    Было бы неплохо увидеть правильно реализованный лонгпул для сообщений сообщества. Множество новичков на этом останавливаются и не могут его сделать.
    Лично я переписывал код («Montece Bot» с ютуба) под группу, работает, но в правильности совсем не уверен.


    1. Larymar Автор
      04.02.2019 22:38

      Это уже не базовый кейс
      руки дойдут — постараюсь написать
      А так прошу всех в тг, там отличный саппорт)