node.js - 如何使用电报(电报框架)将聊天ID保存到文件中
问题描述
这是我在 Heroku 上托管的电报机器人代码。我正在使用 Telegraf 框架。
我正在尝试收集From Chat ID
使用ctx.from.id
并将其保存到文件中。我不知道为什么它不保存。
const Telegraf = require('telegraf')
const express = require('express')
const fs = require('fs')
var BOT_TOKEN = "TOKEN-HIDDEN"
const expressApp = express()
const port = process.env.PORT || 3000
expressApp.get('/./', (req, res) => {
res.send('Running')
})
expressApp.listen(port, () => {
console.log(`Listening on port ${port}`)
})
const bot = new Telegraf(BOT_TOKEN)
bot.start((ctx) => ctx.reply("Welcome to my chatbot"))
bot.startPolling()
fs.appendFile('file.txt', "ctx.from.id", function (err) {
if (err) return console.log(err);
console.log('done');
});
解决方案
这里的错误很少
1:您编写了在电报功能之外保存聊天ID的功能。
2:您使用ctx.from.id
as/in string。
如果您尝试在机器人启动时保存聊天 ID,那么代码应该是
bot.start((ctx) => {
ctx.reply("Welcome to my chatbot");
fs.appendFile('file.txt', ctx.from.id + ",", function (err) {
if (err) return console.log(err);
console.log('done');
});
});
推荐阅读
- android - ItemDecoration 显示在 RecyclerView 上方,而不是下方
- python - 在 Python 中声明变量而不给出值
- c++ - 我的重载函数有什么问题?
- coq - 从自动策略的角度来看,符号和定义有什么区别?
- c# - 如何修复 C# 中未找到导入项目的错误
- java - 应为字符串,但为 BEGIN_OBJECT
- r - R - 根据不同长度的数据帧之间的匹配标识符插入行
- html - 单击具有 powershell 自动化功能的按钮
- puppeteer - 当 id 包含 $ 时找不到选择器的节点
- android - 需要帮助确定在 metasploit 中使用哪些端口