๋ด์ ํฅ๋ฏธ๋ก์ธ ๋ฟ๋ง ์๋๋ผ ์ ์ฉํฉ๋๋ค. ์์
ํ๋ ๋์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์๋ํํ๊ธฐ ์ํ ๊ฐ๋จํ์ง๋ง ์๋ํ๋ ํ๋ก์ ํธ๋ฅผ ์ป์ ์ ์์ผ๋ฉฐ ๊ทธ ๊ณผ์ ์์ ๋๋ค, 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