봇은 흥미로울 뿐만 아니라 유용합니다. 작업하는 동안 모든 기능을 자동화하기 위한 간단하지만 작동하는 프로젝트를 얻을 수 있으며 그 과정에서 람다, Git 및 Heroku에 익숙해질 수 있습니다. 봇을 만들 때 단순한 에코 봇보다 조금 더 복잡한 것을 만드는 방법에 대한 지침을 찾지 못했습니다. 나는 좀 더 합리적인 것을 원했습니다. 예를 들어 실제 대화를 수행할 수 있는 채널, 선택한 답변에 따라 개발이 변경되는 채널을 원했습니다. 2주 동안 진행된 프로젝트에 대해 말씀드리고, 마지막 단계에서 큰 어려움을 겪었기 때문에 Heroku 배포에 특히 주의하겠습니다.
등록
시작하려면 봇을 등록하고 나중에 필요한 이름과 토큰을 받아야 합니다. 다행스럽게도 이는 어렵지 않습니다. Telegram을 열고 @BotFather를 찾아 /start를 입력하면 됩니다. 이에 대한 응답으로 명령 목록을 받게 됩니다. /newbot이 필요합니다. 이름을 지정한 다음 -bot으로 끝나야 하는 사용자 이름을 입력합니다(예: Consequences1Bot). 사용자 이름은 독창적이어야 하므로 여기서는 상상력을 발휘해야 합니다. 이에 대한 응답으로 BotFather는 즉시 저장하는 것이 가장 좋은 토큰을 보냅니다.시작
시작하려면 Maven 프로젝트, Java 8 및 Intelliji Idea Ultimate가 필요합니다. Insertpom.xml
: 오른쪽 상단에 나타나는 Load Maven 변경사항 버튼을 클릭하는 것을 잊지 마세요. 또한 Java 8 이상을 사용하고 있는지 확인하세요. 이는 파일 --> 프로젝트 설정 --> 프로젝트에서 찾을 수 있습니다. 폴더에서 src.main.java
봇 이름으로 하위 폴더를 만듭니다. 제 경우에는 package 입니다 example.TelegramBot
. TelegramBot
먼저 를 상속받는 클래스를 만듭니다 AbilityBot
. Idea에서 빨간색으로 밑줄을 그으면 클래스 가져오기를 클릭합니다. AbilityBot에는 구현해야 하는 한 가지 방법이 있습니다 creatorId()
.
@Override
public int creatorId() {
return Constants.CREATOR_ID;
}
또한 두 개의 생성자를 만들어야 합니다. 하나는 인수가 없고, 두 번째 생성자는 슈퍼클래스 생성자를 호출합니다.
public TelegramBot() {
this(Constants.BOT_TOKEN, Constants.BOT_USERNAME);
}
private TelegramBot(String botToken, String botUsername) {
super(botToken, botUsername);
}
Constans
자연스럽게 빨간색으로 변합니다. 이 인터페이스를 만들어야 합니다. 문자열과 ID 번호를 저장합니다. 물론 귀찮게 메인 문서에 모든 것을 남겨둘 필요는 없지만 이렇게 하면 훨씬 더 명확해질 것입니다. 그럼 인터페이스를 만들어 보겠습니다 Constans
. String BOT_TOKEN
첫 번째 변수는 (BotFather가 보낸 토큰) String BOT_USERNAME
및 입니다 int CREATOR_ID
. 추가 보안을 위해 제작자 ID가 필요합니다. 잠시 후에 찾을 수 있습니다.
시작하다
봇을 초기화하는 데 필요한 코드가 포함된Application
메서드를 포함할 클래스를 만듭니다 .main()
public class Application {
public static void main(String[] args) {
// Initializes dependencies necessary for the base bot
ApiContextInitializer.init();
// Create the TelegramBotsApi object to register your bots
TelegramBotsApi botsApi = new TelegramBotsApi();
try {
// Register your newly created AbilityBot
FitnessBot bot = new FitnessBot();
botsApi.registerBot(bot);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
}
이제 기본 메서드에서 봇을 시작할 수 있지만 어떤 작업도 수행하지 않습니다. 침묵만이 당신의 대답이 될 것입니다. 다음편에서는 이를 변경하는 방법에 대해 설명하겠습니다. 2 부
GO TO FULL VERSION