Модуль с подтверждением регистрации через telegram (аналог смс подтверждения) — различия между версиями

Материал из боты telegram - ebot.one - редактор ботов
Перейти к: навигация, поиск
(Регистрационный бот:)
(Страница 404 (Не найденный раздел):)
Строка 130: Строка 130:
 
== Страница 404 (Не найденный раздел): ==
 
== Страница 404 (Не найденный раздел): ==
  
В случае если модуль (раздел) не найден система выдаст ошибку 404:
+
В случае если модуль (раздел) не найден система выдаст ошибку '''404''':
  
 
[[Файл:Sendmanager 404.png|400px|thumb|center|]]
 
[[Файл:Sendmanager 404.png|400px|thumb|center|]]

Версия 00:52, 23 апреля 2018

Демо регистрации через бота telegram

Проект Ebot.one представляет Демо регистрации через бота telegram.

Данный набор файлов (скачать можно по ссылкам ниже) имеет смысл использовать в качестве основы для проекта если:

  • В вашей системе (например, сайте) будет регистрация пользователей.
  • Нужно свести к минимуму возможность одним пользователем завести несколько аккаунтов.
  • Механизм подтверждения уникальности пользователем должен быть бюджетным (сообщение от бота telegram бюджетнее смс).
  • Будущая система должна поддерживать более одной языковой версии.
  • Будущая система будет иметь как минимум разделение на пользователей и администраторов.
  • Необходимо будет добавлять разделы.
  • Необходимо чтобы была настройка какие разделы видны, а какие доступны для того или иного типа пользователя системы.

Вид десктоп версии:

Sendmanager login.png

Вид мобильной версии:

Sendmanager modile main 1.png
Sendmanager modile main 2.png

Данныая версия примера использует фреймфорк bootstrap, что дает системе адаптивность и возможность быстро поменять визуальную составляющую проекта, поскольку bootstrap достаточно прост в освоении, но Вам не составит труда заменить участки кода bootstrap на свои. bootstrap подключен в файле index.php (архив register_demo.zip)


Файлы

Файлы web-интерфейса регистратора:

register_demo.zip (579 Kb)

Файл дампа базы:

sender_users.sql.zip (2 Kb)

Экспорт бота для генерации кода при регистрации нового пользователя:

export_2018-04-22_21-44-21.zip (1 Kb)

Библиотека иконок: (Не обязательно)

fonts.zip (8 281 Kb)

По умолчанию файлы иконок загружаются с fontawesome.com но можно пожертвовать местом на хостинге (19,4 Mb) ради скорости загрузки иконок и скачать их по ссылке выше. В этом случае папку fonts следует положить в корень папки /register_demo/sender (из архива register_demo.zip) и прописать в файле конфига /register_demo/sender/settings.php в переменной $fonts_local = true;

Конфигурационные файлы:

Конфигурационный файл web движка - /register_demo/sender/settings.php (архив register_demo.zip).

Конфигурационные файлы бота для генерации регистрационного кода можно найти в register_demo/bots/source_reqs/77639817/SendManagerBot/ (архив register_demo.zip):

conf.php:

$admin_chat_id = '12345'; - chat_id администратора бота. Для того чтобы узнать свой chat_id (ID в телеграме) достаточно написать боту: getChatId

$key_md5 = md5('sdfghj'); - md5 от key бота в редакторе (не путать с API KEY бота в telegram) (см. настройки бота в редакторе)

$admin_user_id = '56789'; - ID пользователя в редакторе

$bot_api_key = '12345:asdfgh'; - API KEY Бота. API KEY бота в telegram (выдает botfather)

my_sql.class - подключение к базе данных


Модули:

Модули (разделы) задаются в конфигурационном файле settings.php по пути /register_demo/sender/settings.php (архив register_demo.zip).

Для описания модулей предусмотрено два массива.

  • modules - массив для названий (URL) модулей и их иконок
  • modules_list - описывает какой роле (статусу) пользователя какие разделы видны и доступны. Также в этм массиве можно указать какой раздел загрузить после авторизации (захода в систему) пользователя. Например, администратора система перебросит на администрационный модуль, а пользователя на пользовательский.

Для добавления нового раздела достаточно продублировать модуль demo по пути register_demo/sender/modules, прописать его в массивах modulesи modules_list файла файда settings.php (архив register_demo.zip), а также поменять название функции в файле register_demo/sender/modules/ИМЯ ВАШЕГО МОДУЛЯ/locale/locale_data.php на getИмяВашегоМодуляMas, где ИмяВашегоМодуля должно быть с заглавной буквы. Например, если Ваш новый модуль называется emails то функция будет называться getEmailsMas. В этой функции следует описывать языковые версии используемых в модуле фраз. Пример языковых различий можно посмотреть в базовом файле языков locale_data.php по пути register_demo/sender/locale.

Русскоязычные (и другие языки) имена разделов находятся в файле locale_data.php по пути register_demo/sender/locale.

Языки:

Перечень языков которые вы хотите иметь в системе следует указать в locale_utils.php в функции getLangs

Базовые слова системы (и их перевод), такие как названия базовых модулей (разделов) и т.д. хранятся в файле locale_data.php по пути register_demo/sender/locale

Фразы модулей хранятся в locale_data.php по пути register_demo/sender/modules/ИМЯ МОДУЛЯ

Русскоязычные (и другие языки) имена разделов находятся в файле locale_data.php по пути register_demo/sender/locale.


Роли (статусы пользователей):

Первый пользователь, который зарегистрируется в системе будет иметь роль (статус) root, а все последующие - user. Раздела, которые будут видны пользователем того или иного статуса можно корректировать в массиве modules_list в конфигурационном файле settings.php (архив register_demo.zip). В этом же массиве можно указать какие модули доступны для пользователя.

функция getModulesList, которая используется в некоторых элементах массива modules_list возвращает список всех модулей за исключением тех, которые переданы ей в качестве аргумента. Например, если вы хотите разрешить доступ ко всем модулям - строчка для указания доступа будет выглядеть так: $add['modules_access'] = getModulesList(); Но если вы хотите разрешить доступ ко всем разделам кроме main и registration (чего не стоит делать вероятно) - то это будет выглядеть как: $add['modules_access'] = getModulesList(array("main", "registration"));

Регистрационный бот:

Имя бота, генерирующего для новых пользователей код, можно указать в конфигурационном файле settings.php по пути /register_demo/sender/settings.php (архив register_demo.zip).

Пример генерации кода для регистрации нового пользователя:

Sendmanager bot 1.png

Полученный от бота код пользователь введет при регистрации в Вашей системе:

Sendmanager modile registration.png

Файлы бота можно скачать по ссылкам выше.

О создании бота можно прочитать тут.

Следует иметь ввиду, что при необходимости система дописывается до работы с подтверждением через СМС или Email.

Для работы через новый сервис достаточно:

  • чтобы система генерировала новую запись в базе в таблице sender_users и в поле hash писала нужный Вам код.
  • поменять текст, говорящий, что генерация кода производится ботом. Сделать это можно в файле index.php по пути register_demo/sender/modules/registration.

Страница 404 (Не найденный раздел):

В случае если модуль (раздел) не найден система выдаст ошибку 404:

Sendmanager 404.png

Страница 401 (Доступ закрыт):

В случае если запрашиваемый пользователем модуль закрыт для пользователей его статуса система выдаст страницу модуля 401 (который и отвечает за это). На самом деле даже радел (404), содержимое которого выдается в случае несуществующей страницы (как и любой модуль, хранящийся в register_demo/sender/modules) может при необходимости быть закрыт для пользователя.

Sendmanager 401.png

ЧПУ

Фалы примера работают через файл index.php по пути /register_demo/sender/ (архив register_demo.zip), выбранная пользователем страница отображается через подключение соответствующего странице модуля. Ссылки на страницы генерируются через функцию getModuleLink файла modules_utils.php по пути register_demo\sender\modules. При необходимости файлы можно настроить на работу через ЧПУ, для чего необходимо произвести соответствующие изменения в указанной функции.

Версия

Текущая версия библиотеки 1.1.1