index.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. namespace BotKit;
  3. // Файл, на который поступают запросы
  4. require_once __DIR__.'/src/bootstrap.php';
  5. use BotKit\Common\Bot;
  6. use BotKit\Common\Commands;
  7. use BotKit\Common\Message;
  8. use BotKit\Drivers\TestDriver;
  9. use BotKit\Events\PlainMessageEvent;
  10. use BotKit\Events\UnknownEvent;
  11. use BotKit\Events\MemberJoinedEvent;
  12. use BotKit\Events\MemberLeftEvent;
  13. use BotKit\Enums\State;
  14. use BotKit\Enums\CallbackType;
  15. use BotKit\Keyboards\SelectGroupNameKeyboard;
  16. $bot = new Bot();
  17. $drv = new TestDriver();
  18. $bot->loadDriver($drv);
  19. $bot->ensureDriversLoaded();
  20. // Выбор курса для группы
  21. $bot->onCallback(CallbackType::SelectGroupCourse, function($e, $u, $driver) {
  22. // Переносим полученные параметры в новую клавиатуру
  23. // А так же изменяем сообщение
  24. $params = $e->getParams();
  25. $driver->editMessage(
  26. $e->getMessageID(),
  27. Message::create("Выбери группу")
  28. ->withKeyboard(new SelectGroupNameKeyboard($params['intent'], $params['course']))
  29. );
  30. });
  31. // Выбор непосредственно группы
  32. $bot->onCallback(CallbackType::SelectGroup, 'BotKit\Common\Commands::handleGroupSelection');
  33. // Просмотр условий использования
  34. $bot->onCallback(CallbackType::TOS, 'BotKit\Common\Commands::showTermsOfService');
  35. // Ввод логина и пароля при регистрации
  36. $bot->onCallback(CallbackType::EnterCredentials, 'BotKit\Common\Commands::enterCredentials');
  37. // Без ответа
  38. $bot->on(
  39. PlainMessageEvent::class,
  40. function ($e, $u, $driver) { return $u->getState() == State::NoResponse; },
  41. function($e, $u, $driver) {}
  42. );
  43. // Начало диалога
  44. $bot->onCommand('/start', 'BotKit\Common\Commands::helloWorld');
  45. $bot->on(
  46. PlainMessageEvent::class,
  47. function ($e, $u, $driver) { return $u->getState() == State::HelloWorld; },
  48. "BotKit\Common\Commands::helloWorld"
  49. );
  50. // Выбор типа аккаунта
  51. $bot->on(
  52. PlainMessageEvent::class,
  53. function ($e, $u, $driver) {
  54. return $u->getState() == State::RegSelectType;
  55. },
  56. "BotKit\Common\Commands::handleSelectType"
  57. );
  58. // Ввод пароля при регистрации
  59. $bot->on(
  60. PlainMessageEvent::class,
  61. function ($e, $u, $driver) {
  62. return $u->getState() == State::RegLogin;
  63. },
  64. "BotKit\Common\Commands::handleRegLogin"
  65. );
  66. // План "Б"
  67. $bot->onEvent(UnknownEvent::class, "BotKit\Common\Commands::unknownEvent");
  68. $bot->fallback("BotKit\Common\Commands::fallback");