Оглавление:
- Как работают боты
- Как завести бота
- Как начать получать сообщения ботом
- Документация
- Пример бота
- Некоторые источники данных
- код бота исполняется на вашем сервере
- бот общается с сервером Telegram по http + json
- первое сообщение должен отправить пользователь
- бота можно пригласить в группу
- написать боту @BotFather сообщение
/newbot
- задать отображаемое имя нового бота
- задать логин бота (должен оканчиваться на
bot
, регистр не важен) - сохранить полученный токен
- адрес всех методов
https://api.telegram.org/bot<token>/METHOD_NAME
- передавать параметры в url или json (application/json)
- ответ в json
Вернет боту информацию о самом себе
{
"ok": true,
"result": {
"id": 1234567890,
"first_name": "Example Bot",
"username": "example_bot"
}
}
Вернет боту список непрочитанных событий
- начиная с события
K
(сервер станет считать, что события менее K прочитаны), - в количестве максимум
N
элементов, - с long polling таймаутом
T
.
{
"ok": true,
"result": [
{
"update_id": 1234567890,
"message": {
"message_id": 77,
"from": {
"id": 12345,
"first_name": "Vitaliy",
"last_name": "Meshchaninov",
"username": "glukki"
},
"chat": {
"id": 123456789,
"first_name": "Vitaliy",
"last_name": "Meshchaninov",
"username": "glukki"
},
"date": 1442074306,
"text": "test"
}
}
]
}
Отправляет сообщение пользователю.
{
"ok": true,
"result": {
"message_id": 37,
"from": {
"id": 1234567890,
"first_name": "Example Bot",
"username": "example_bot"
},
"chat": {
"id": 1234567891,
"first_name": "glukki",
"last_name": "",
"username": "glukki"
},
"date": 1437595975,
"text": "Hello world!"
}
}
- Введение в Telegram Bots — общая информация о возможностях ботов
- Telegram Bot API — подробная документация по API
- Модуль request — для простого осуществления http-запросов
- скачать файлы
index.js
иpackage.json
в отдельную директорию; - подставить в
index.js
токен своего бота в переменнуюTOKEN
; - в директории с файлами выполнить
npm install
(установит модули указанные вpackage.json
); - запустить бота командой
npm start
илиnpm run-script watch
(будет перезапускать бота при изменении кода).
http://api.openweathermap.org/data/2.5/weather?lat=59.955800&lon=30.328257
https://developers.google.com/maps/documentation/geocoding/intro#ReverseGeocoding
https://maps.googleapis.com/maps/api/geocode/json?latlng=59.955800,30.328257
https://developers.google.com/maps/documentation/timezone/intro
https://maps.googleapis.com/maps/api/timezone/json?location=59.955800,30.328257×tamp=1443344339
http://random.cat/meow
https://developer.github.com/v3/issues/
https://api.github.com/repos/nodeschool/spb/issues?sort=created&state=open
https://developers.google.com/places/web-service/search
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=59.955800,30.328257&radius=500&key=XXX
Требует регистрации
https://dev.twitter.com/rest/reference/get/statuses/user_timeline