-
-
Notifications
You must be signed in to change notification settings - Fork 221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GetLongPollHistory не возвращает значения #365
Comments
@raphaelgolubev Спасибо по возможности проверим и постараемся ответить на проблему |
Этот метод нужно использовать в связке с LongPoll. С помощью него отлавливаете событие (например: пришло новое сообщение) и вызываете GetLongPollHistory с параметрами ts и pts.Он может вернуть больше данных, чем при обычном использовании LongPoll, например: ссылку на изображения аватара, имя в различных падежах и т.д. |
Не очень понимаю как реализовать это средствами библиотеки VkNet. В ней предоставлены только getLongPollHistory и getlongPollServer, а как отлавливать события, я, увы, не знаю. |
Там старая версия, я не знаю работает ли она корректно сейчас, но для ответа на вопрос "как пользоваться" подойдет. Сейчас нет времени заниматься. Просто посмотрите как сделано и сделайте похожим образом |
Хорошо, я попробую. |
Новые сообщения мгновенно отлавливаются. Проблему для себя решил. var response = _account.Messages.GetLongPollServer(false, lastPts == null); на var response = _account.Messages.GetLongPollServer(true,true); Не уверен в абсолютной правильности данного решения, так как в коде разобрался лишь поверхностно. Однако я результатом остался доволен. |
здравствуйте. можете пожалуйста написать простенький пример как отлавливать новые сообщения? спасибо. |
@beqabeqa473 уже отправлял ссылку, вот файл, в котором непосредственно идет отлов сообщений |
После того, как Вы подключили VkNetExtend к своему проекту пишите следующий код: var PollServer = vk.Messages.GetLongPollServer(true, true);
VkNetExtend.LongPoolWatcher Watcher = new LongPoolWatcher(vk);
Watcher.StartAsync(PollServer.Ts, PollServer.Pts);
Watcher.NewMessages += Watcher_NewMessages; //событие получения новых сообщений private void Watcher_NewMessages(VkApi owner,System.Collections.ObjectModel.ReadOnlyCollection<VkNet.Model.Message> messages)
{
MessageBox.Show("Новое сообщение!"); //здесь описываете то, что должно происходить при получении нового сообщения;
//все необходимые свойства находятся в messages (текст сообщения, тип вложения, от кого пришло, к кому пришло и т.д.)
} Лично мне для того, чтобы добиться работоспособности расширения потребовалось изменить всего одну строчку (см. выше). Можете тоже попробовать, если в LongPoolWatcher.cs вылезает исключение типа "NullReferenceException". |
Здравствуйте, при вызове метода почему-то возвращается только NewPts, не могу понять в чем проблема. Спасибо.
Вот код по нажатию кнопки:
The text was updated successfully, but these errors were encountered: