Илдар Posted June 30, 2018 Share Posted June 30, 2018 (edited) Дано: данный магазин в приложении телеграм каждый день даёт 20% скидку на рандомные 6 продуктов, если эту скидку попросить. Имеется 2 телефона на семью с двумя симками, по одной скидочной карте на каждую симку, итого 4 аккаунта и потенциально 24 продукта с 20% скидкой. Там же в приложении можно выбрать неугодные категории, т.о. потенциально скидки как раз будут даваться на то, что необходимо. Автоматизируем. Каждое утро должен присылаться список продуктов со скидкой на почту. Общаться по телеграму придётся с ботом, мы должны быть инициатором общения, поэтому простое решение - телеграм бот-API - не подходит. Ставим полный PHP-клиент MadelineProto. Сначала нужно установить и настроить связку lighttpd + php, в php настроить отправку почты. После этого: 1. настройка php opkg install php7-mod-xml php7-mod-openssl php7-mod-mbstring php7-mod-gmp php7-mod-curl opkg install php7-mod-phar php7-mod-zip opkg install php7-fpm php7-cli opkg install php7-mod-json opkg install php7-mod-dom 2. python opkg install python3 3. make directory mkdir /opt/share/www/tg cd /opt/share/www/tg 4. git opkg install git git-http 5. install composer https://getcomposer.org/download/ /opt/bin/php-cli -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" /opt/bin/php-cli -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" /opt/bin/php-cli composer-setup.php /opt/bin/php-cli -r "unlink('composer-setup.php');" 6. создадим алиас на компосер alias composer='/opt/bin/php-cli composer.phar' 7. get MadelineProto git clone https://github.com/danog/MadelineProto.git содержимое папки MadelineProto вырезать на уровень выше папку MadelineProto удалить 8. composer update 9. рестарт сервера /opt/etc/init.d/S80lighttpd restart 10. настроить на роутере IP 6to4 tunnel по инструкции, иначе сервера заблокированы доблестными борцами с террором. https://help.keenetic.com/hc/ru/articles/213968529-Настройка-туннельного-подключения-IPv6-6to4 11. первая засада: php-cli скомпилирован без поддержки readline. Процедура readline используется скриптом tg/tests/testing.php для первичной настройки (авторизации) и сохранения файла соединения с сервером телеграм, поэтому я п.п 1-9 повторяю на стационарном компе с установкой обычного php 12. заходим на https://my.telegram.org/apps и регистрируем под свой аккаунт новое приложение. Тип - web, остальное неважно. После нажатия кнопки регистрации появятся два поля - appl_id & appl_hash 13. на стационарном компе запускаем tg/tests/testing.php cd tg php-cli tests/testing.php На вопрос скрипта, вручную или автоматически задать настройки appl_id, говорим, что вручную. Даём скрипту appl_id & appl_hash из п.12 Далее следуют долгие процедуры установления коннекта, запроса вашего номера телефона и кода подтверждения, результатом которых будет появление файлов: tg/testing.madeline tg/testing.madeline.lock 14. переименовываем файлы из п.13 например так: tg/mts.madeline tg/mts.madeline.lock 15. при необходимости п.п. 13-14 повторяем для другого номера телефона 16. кладём файлы из п.14 в папку роутера /opt/share/www/tg 17. кладём файл tg_vksvll_any.php (приложен к этому сообщению) в папку роутера /opt/share/www/tg tg_vksvll_any.php 18. в файле tg_vksvll_any.php меняем настройки (имена файлов из п.14, почтовые адреса получателя и отправителя) на свои 19. выполняем cd /opt/share/www/tg && /opt/bin/php-cli /opt/share/www/tg/tg_vksvll.php и скорее всего у вас ничего не получится, если вы не настроили отправку почты из php После корректной настройки и установки на график каждое утро в почту приходит такое: Edited June 30, 2018 by Илдар 1 1 Quote Link to comment Share on other sites More sharing options...
aerolit26 Posted October 11, 2019 Share Posted October 11, 2019 нашей деревни нет в списке городов))) P.S. Красноярск Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.