Я много дружу с библиотекой VkNet. Но, к сожалению, документация по работе с ней достаточно устарела. Так что я решил поделиться и создать маленький туториал по основам работы с этой библиотекой.
Прежде всего нужно создать приложение здесь.
И из настроек только что созданного приложения взять App Id.
Теперь можно переходить непосредсвенно к коду.
Создадим консольное приложения .net core и добавим зависимость VkNet.
Создадим экземпляр VkApi.
Теперь необходимо авторизоваться.
Получим список из 20 последних диалогов
А теперь получим 20 последних сообщений из первого диалога.
И, пожалуй, напечатаем результаты.
И отправим тестовое сообщение автору первого предыдущего сообщения.
Как пример:
И вот такой конечный код мы получили
P.S.
Поддержку можно найти тут.
Прежде всего нужно создать приложение здесь.
И из настроек только что созданного приложения взять 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.
Поддержку можно найти тут.
xeleos
Было бы неплохо увидеть правильно реализованный лонгпул для сообщений сообщества. Множество новичков на этом останавливаются и не могут его сделать.
Лично я переписывал код («Montece Bot» с ютуба) под группу, работает, но в правильности совсем не уверен.
Larymar Автор
Это уже не базовый кейс
руки дойдут — постараюсь написать
А так прошу всех в тг, там отличный саппорт)