package com.example.telegrambot;
import com.example.telegrambot.bot.Bot;
import org.apache.log4j.Logger;
import org.telegram.telegrambots.ApiContextInitializer;
public class App {
private static final Logger log = Logger.getLogger(App.class);
public static void main(String[] args) {
ApiContextInitializer.init();
Bot test_habr_bot = new Bot("test_habr_bot", "1012522162:AAHLvPVqKF48LdqnsvS3l5YrJfvFey6dBa0");
test_habr_bot.botConnect();
}
}
Ko'rib turganingizdek, bot ishlashi uchun bizga faqat "bot nomi" va "token" kerak bo'ladi, biz uni Bot sinfimiz konstruktoridan o'tkazamiz.
Siz botning nomini va tokenini barcha botlarning otasidan olishingiz mumkin :) unga telegramda yozib.
Uning taxallusi: @BotFather U bilan
muloqot juda sodda va qisqa.
Buyruq bilan
/ newbot
Natijada siz quyidagi dialogni olishingiz kerak:
Ular bu erda ham aniqroq deb yozishadi, bu ma'lumotni hech kimga ko'rsatmang, aks holda sizning botingizni boshqasi boshqara oladi :)
Siz aytasizki , men unchalik aniq emasman. ... Balki, lekin botlarning otasi bizga tokenlarni o'zgartirishga va hamma uchun ochiq bo'lganlarni bekor qilishga ruxsat beradi. Shuning uchun, mening ma'lumotlarim bilan bog'lanishga harakat qilgandan so'ng, sizga shunday xabar keladi:
13:44:25,252[DEBUG][main ][ com.example.telegrambot.bot.Bot] - Bot token: 1012522162:AAF5D49N4NreEJfCk0aOsC-UnmIu_GLkoyc
13:44:26,613[ERROR][main ][ com.example.telegrambot.bot.Bot] - Cant Connect. Pause 10sec and try again. Error: Error removing old webhook
Mening ma'lumotlarim bilan siz ulana olmaysiz. O'zingizni ro'yxatdan o'tkazing. App.java sinfidagi yangi ma'lumotlarni ko'rsating
Endi, App sinfidagi asosiy usulni ishga tushirib , biz botimizga ulanishga va yangi xabarlarni kutishga ruxsat beramiz. U bizga konsolda o'z harakatlari va urinishlari haqida yozadi.
Package.com.example.telegrambot;
|
|
|
|
|
import com.example.telegrambot.bot.Bot;
|
|
import org.apache.log4j.Logger;
|
|
import org.telegram.telegrambots.ApiContextInitializer;
|
|
|
|
/**
|
|
* Hello world!
|
|
*/
|
|
public class App {
|
|
private static final Logger log = Logger.getLogger(App.class);
|
|
|
|
public static void main(String[] args) {
|
|
ApiContextInitializer.init();
|
|
Bot test_habr_bot = new Bot("test_habr_bot", "1012522162:AAHLvPVqKF48LdqnsvS3l5YrJfvFey6dBa0");
|
|
test_habr_bot.botConnect();
|
|
}
|
|
}
| Log4j
Yodingizda bo'lsin, men yuqorida log4j kutubxonasining foydaliligi haqida gapirdim. Va bu erda qiziquvchilar uchun foydali ma'lumotlar to'plami ochiladi. Log4j.properties
faylida allaqachon uchinchi tomon sinflari va bizning botda ishlaydiganlar uchun qaydlar va maxsus qayd qilish darajalari mavjud.
log4j.debug = false
|
|
|
|
|
log4j.rootLogger= error, file
|
|
log4j.logger.com.example.telegrambot.App = debug, stdout
|
|
log4j.logger.com.example.telegrambot.bot.Bot = debug, stdout
|
|
|
|
|
|
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
|
log4j.appender.stdout.target=System.out
|
|
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
|
log4j.appender.stdout.layout.conversionPattern= %d{ISO8601}[%-5p][%-16.16t][%32.32c] - %m%n
|
|
|
|
log4j.appender.file=org.apache.log4j.FileAppender
|
|
log4j.appender.file.file=logs/main.log
|
|
log4j.appender.file.layout=org.apache.log4j.PatternLayout
|
|
log4j.appender.file.layout.conversionPattern= %d{ISO8601}[%-5p][%-16.16t][%32.32c] - %m%n
|
faylida allaqachon uchinchi tomon sinflari va bizning botda ishlaydiganlar uchun qaydlar va maxsus qayd qilish darajalari mavjud.
log4j.rootLogger= error, file
log4j.logger.com.example.telegrambot.App = debug, stdout
log4j.logger.com.example.telegrambot.bot.Bot = debug, stdout
Jurnalga kirishning asosiy darajasi Xato sifatida belgilanadi.
Bot va App sinflari uchun jurnal chiqishi Debug darajasida ko'rsatiladi.
Do'stlaringiz bilan baham: |