创建Bot
BotFather介绍
BotFather是 Telegram 平台上的官方机器人,用于创建和管理其他机器人(Bot)。用户需要通过它与 Bot API 进行交互,完成机器人的创建、配置及管理。
创建机器人
1、在 Telegram 中搜索 “BotFather” ,然后单击 “开始” 。
2、在 BotFather 对话框输⼊ /newbot 命令。
3、输⼊机器人的名称(以后可以更改, 可以有中文)和 ⽤户名(Telegram 机器⼈的唯⼀标识符,以后⽆法更改, 必须英文)。【用户名记得以 “Bot” 结尾,或者最简单的直接用户名+Bot作为机器人的名称】
4、修改bot信息
点击菜单, 选择第二个 (/mybots)
5、查询机器人token, 框输⼊ /token命令
创建频道
群组就是群聊, 频道类似于公帐号
使用网页版TG登录,打开频道&群组,在地址栏可以看到 频道ID
网页版TG:https://web.telegram.org/
注意
- ID前面是有负号的,不要遗漏
- 在频道设置中,如果频道为公开,直接使用这里的ID
-2651277945
,如果频道设置为私密,则需要在ID前面加上 100,为-1002651277945
将Bot添加到 频道,设置管理员
新建Node项目
执行 npm init -y 命令, 初始化node项目
安装 node-telegram-bot-api
npm i node-telegram-bot-api
测试一下
注意,本地开发时,需要使用 网络科技 的全局模式
定时播报恐惧贪婪指数
下载axios
npm i axios
下载cron
npm i node-cron
完整代码
const TelegramBot = require('node-telegram-bot-api');
const axios = require('axios');
const cron = require('node-cron');
// Bot token
const token = '';
// 频道ID
const channelId = '';
// 创建 Bot 对象
const bot = new TelegramBot(token);
async function main() {
try {
const response = await axios.get('https://api.alternative.me/fng/');
const data = response.data;
if (data.data && data.data.length > 0) {
const latestData = data.data[0];
let Text = `\n今日贪婪指数: ${latestData.value}\n`
await bot.sendMessage(channelId, Text);
}
} catch (error) {
console.error('请求贪婪指数失败:', error);
}
}
// 定时任务,每分钟触发
cron.schedule('0 * * * * *', () => {
main();
});
部署到服务器
首先在服务器上,安装 NodeJS、NPM
下载 PM2,Nodejs的服务端管理工具
npm install pm2 -g
新建 Rbot文件夹 作为项目根目录, 把源代码上传至根目录下
启动项目
方式1
方式2:
安装依赖
npm intasll
pm2 启动项目
pm2 start index.js --name "Rbot"
可以启动多个node脚本,一起使用Pm2管理,输入
pm2 list
pm2 启动
sudo $(which pm2) start index.js --name "Rbot"