ПредишенСледващото

Лодка за телеграма в питон от първия ред на кода да се изпълнява на Heroku

В това ръководство ще разгледаме процеса на написването на прост Телеграма-бот в Python и се движат по Heroku сървър. Но първо, нека да разберете, защо имаме нужда от роботи и защо трябва да я напиша.

влизане

Това е стандартен алгоритъм на действия, без бот:

Да, много хора са свикнали да го правят. Въпреки това, лодката ще позволи да се процедира, както следва:

Удобен е, нали? И това е само една от възможностите.

Телеграма позволява на потребителите да създават свои собствени ботове. Отговор на въпроса "Защо трябва да я пиша?" - това е може би най-лесният начин да се разбере това, което API.

Cool, ние започваме да се напише бот?

Всичко е в ред. Първо трябва да се регистрират в телеграмата. Това е най-удобен за използване на Web клиентът да проучи основните принципи на ботове и API.

Отваряне на приложението, да @BotFather и започнете разговор. Изпрати командния / newbot и следвайте инструкциите. След като направите първите стъпки, вие ще получите:

Всъщност, това е всичко. На този етап бот напълно пасивен.

Вие трябва да започнете разговор с бота. Въведете в полето за търсене на името и кликнете върху бутона / начало. Изпрати съобщение като "Здравей". Това е първото послание е много важно, защото това ще бъде първата актуализация, която ще получите вашия бот.

Ако първия път, когато се работи с API, сделката ще помогне на браузъра. Отваряне на нов раздел и да използвате Телеграма API, като кликнете на следния линк:

Опитайте се да получите отговор от вашия бот заместващ chat_id като стойността, получена след разговори / getUpdates (в нашия пример - 303262877). Текстът на съобщението може да бъде всичко. Искането трябва да изглежда така:

И кога ще кода?

Ако използвате Windows и не е нужно Python, можете да го изтеглите от официалния сайт. Като цяло, версия не е важно, но в тази статия ще се използва Python 3.x. Ако имате Linux или MacOS, а след това двете версии (или, най-малкото, Python 2.x) вече са инсталирани.

След това е необходимо да се определи издатината. В горните версии на Python 2.7.9 и Python 3.4, както и MacOS / Linux вече е там. Можете да проверите това пип --version команда в терминала. Ако по някаква причина той липсва, можете да го инсталирате с командата:

Уловката е, че различните версии на Python използват различен пип. Ако имате MacOS, можете да се опитате да следвате съветите на Stack Overflow. В случай на Windows, трябва да изтеглите get-pip.py. отворите команден ред, отидете до директорията с изтегления файл и стартирайте командата:

Най-трудната част отзад. Инсталиране на исканията на пакети, използващи пип:

И сега - кода

Сега, че знаете какво е API, и създаде всички необходими инструменти, напишете скрипт, който ще проверява за актуализации и да отговаряте на нови съобщения.

На първо място, лодката трябва да проверите за актуализации. Първото послание може да се разглежда като най-новата, но getUpdates връща всички актуализации в последните 24 часа. Нека да пиша малко скрипт, за да получите най-новата актуализация:

Речник актуализация се състои от два елемента: ОК и резултати. Ние сме заинтересовани от втората част - списък на всички актуализации, получени от бота в последните 24 часа.

Научете повече за исканията на библиотеката, можете да прочетете документацията. Всъщност, всеки път, когато трябва да извлечете, актуализирате или изтриете информация, съхранявана на сървъра, можете да изпратите заявка и да получи отговор.

Сега трябва да добавите още 2 функции. Първият ще се chat_id на обновяването, а вторият - за да изпратите съобщение.

Помните ли как ние комбинирахме параметри използване. и , Можете да направите същото и чрез добавяне на речника като втори допълнителен параметър за функциите на GET / публикувайте искания от пакета.

Сценарият е готов, но това не е съвършен. Основният недостатък е необходимостта да го стартирате всеки път, когато ние искаме бота да изпратите съобщение. Отстраняване на този. Роботът, за да слушате сървър и да получите актуализации, ние трябва да се изпълнява основната линия. На нов ред, след като исканията за внос. добавите, от време на сън внос. След това поставете последните два реда в следния код:

Докато ние добавихме изчакване от 1 секунда и примера по-горе може да се използва само за образователни цели, тъй като използва част от изследването (кратко четене). Това е лошо за сървъра на телеграма, и трябва да се избягва. Има два начина за получаване на актуализации чрез приложния програмен интерфейс - дълго анкета (дълго четене) и vebhuki (webhooks). Ако използваме метод за получаването на актуализации чрез getUpdates без параметри, исканията ще се появят твърде често.

Сега бота трябва да работи добре, но тя все още може да се подобри. Нека да оформят всички функции в един клас. Тя трябва да изглежда по следния начин:

Крайният докосване - да установи, променливи и да поучава бот достойни обноски. Ние ще направим така, че лодката ви посрещне веднъж дневно, с фразата трябва да зависи от времето на деня. За да направите това, добавете следния код, за да ви скрипт:

Сега можете да подобрите робота, както желаете. Можете, например, конфигуриран да изпраща мултимедийни файлове или да добавите свои собствени бутони.

Подредете разгръщане

Последната стъпка е въвеждането на бота ви на сървъра. Със сигурност не го направите, и не искам да си купя - но това не е задължително. Сега има много свободни облачни решения, от които ние ще изберат Heroku.

На MacOS и Windows трябва да изтеглите и инсталирате ръчно. И не забравяйте да се регистрирате на Heroku.

Сега трябва да се почисти файловете. Създаване на нова папка и да го преместите в терминал или командния ред а. то се инициализира virtualenv:

Името не е от значение, но това е по-добре да го направи по-интуитивен. Отидете до my_env с папки.

Сега трябва да се клонира Git-хранилище. Въведете следната команда:

Поставете скрипта в папката, в резултат на команда Git клон.

Върнете се в папка и да стартирате my_env virtualenv:

Ако сте успешно стартира virtualenv. командния ред трябва да започва с (my_env).

Отиди на хранилище папката и отново определя исканията на модула:

Сега трябва да се създаде списък на зависимости Heroku. Това е лесно. въведете:

Създаване Procfile. В този файл трябва да поставите инструкции за работа с вашия скрипт. Името на файла трябва непременно да бъде Procfile (Procfile.windows в случай на Windows). Той не трябва да има други разширения. Съдържанието на файла трябва да бъде (замени my_bot върху името си скрипт):

Добави __init__.py файл в папката. То може да бъде празен, но тя трябва да бъде там.

Изпрати на извършване на промени в хранилището:

Сега razvernom бот на Heroku. Можете да използвате контролния панел на сайта, но ние правим всичко, което практикува през конзолата. Ако срещнете някакви проблеми, моля консултирайте се с това ръководство.

Помислете само онези действия, които са необходими за разполагане на заявлението. Ако използвате Windows или MacOS, задайте интерфейса на командния ред, следвайте ръководството правилно.

Ако използвате Ubuntu, използвайте следните команди:

Ако се появят някакви грешки, проверете дали всички зависимости са налице.

Сега изпълнете следните команди:

От този момент нататък, приложението ви трябва да се движат по Heroku сървър. Ако нещо се обърка, проверете трупи, както следва:

Свързани статии

Подкрепете проекта - споделете линка, благодаря!