Skip to content

3. Запускаем пример

TheCooler edited this page Oct 12, 2018 · 7 revisions

Файл настроек и первый запуск

  • Тестовый проект представляет из себя консольное приложение, при запуске которое пытается достать настройки для бота из .json файла, который должен находиться рядом с бинарником.
  • Когда вы первый раз запустите тестовое приложение, файл настроек не будет найден, и приложение создаст новый по-умолчанию. Вам нужно будет открыть его и заполнить нужными параметрами, получение которых рассматривается в статье Первая настройка.
  • В вашем пользовательском коде, вам не обязательно подгружать настройки таким образом. Вы можете описать свою логику, вплоть до вшитых параметров в бинарнике.
Settings settings = null;
if ((settings = Settings.Load()) == null)
{
    Console.WriteLine("Файл с настройками не найден рядом с бинарником. Будет создан файл настроек по-умолчанию.");
    Console.WriteLine("Занесите в него корректные параметры для вашего бота и запустите пример снова");
    Settings.CreateDefaults();
    Console.ReadLine();
    return;
}
  • В данном примере мы создаем экземпляр нашего бота и передаем ему AccessToken и GroupUrl, полученные при загрузке настроек из файла, затем подписываемся на все доступные события, регистрируем шаблоны фраза - ответ.
Console.WriteLine("Настройки загружены.");
VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl);
bot.OnMessageReceived += MessageReceivedTest;
bot.OnGroupUpdateReceived += UpdateReceivedTest;
bot.RegisterPhraseTemplate("привет", "на привет всегда отвечаю кусь");
bot.RegisterPhraseTemplate("ты кто", new List<string>() {"меня зовут мишутка","вы о ком","не говори так","а ты кто?" }  );
bot.RegisterPhraseTemplate("колобок", (msg) =>
{
	Console.WriteLine($"кто-то написал {msg.Text}, я могу регировать на эту фразу так, как я хочу! system(\"reboot\")");
});
bot.Start();
  • Метод MessageReceivedTest вызывается при получении сообщения в паблик, затем в консоль выводится ид отправителя (пользователя или беседы) и текст сообщения:
static void MessageReceivedTest(object sender, VkBot.MessageReceivedEventArgs args)
{
	Console.WriteLine($"MessageReceivedTest Works!: {args.message.PeerId}: {args.message.Text}");
}
  • Метод UpdateReceivedTest вызывается при каком-либо событии в группе. В данном случае, мы проверяем, является ли событие исходящим сообщением, от имени группы, и выводим id получателя и текст сообщения. Полный список событий в группе можно узнать тут
static void UpdateReceivedTest(object sender, VkBot.GroupUpdateReceivedEventArgs args)
{
	if (args.update.Type == GroupUpdateType.MessageReply)
	{
		Console.WriteLine($"UpdateReceivedTest Works! intercept output message: {args.update.Message.PeerId}: {args.update.Message.Text}");
	}
}

Результат работы примера