从电报信息中获取message_id – node.js
我正在处理一个Telegram机器人的问题。 我以下面的格式从用户那里收到消息:
update { update_id: 82618016, message: { message_id: 363, from: { id: 22303518, first_name: 'Steve', language_code: 'de-DE' }, chat: { id: 22303518, first_name: 'Steve', type: 'private' }, date: 1501501753, text: 'j' } }
当我想访问聊天的ID我可以做到这一点没有任何问题,使用
$.message.chat.id
只要想获得message_id或first_name我只会得到“未定义”。
$.message.chat.first_name $.message.message_id
有人能帮我一下吗? 据我所知,我正确理解了信息的结构,所以我不知道这里有什么问题。
非常感谢你提前
编辑:我在这里添加更多我的代码:
bot(包括webhook)的主要代码是这样的:
initializeBot(); function initializeBot(){ const Telegram = require('telegram-node-bot'); const PingController = require('./controllers/ping'); const OtherwiseController = require('./controllers/otherwise'); const tg = new Telegram.Telegram('MY_TOKEN_IS_HERE', { webhook: { url: 'https://mutzi-bot.herokuapp.com', port: process.env.PORT || 443, host: '0.0.0.0' } }) tg.router.when(new Telegram.TextCommand('/ping', 'pingCommand'), new PingController()) .otherwise (new OtherwiseController()); }
当ShouldControlController被调用时,会调用下面的代码(我将它简化为要点以阐明问题。
class OtherwiseController extends Telegram.TelegramBaseController { handle($){ console.log($.message.chat.first_name); console.log($.message.text); console.log($.message.chat.id); console.log($.message.message_id); } }
此消息的控制台输出
update { update_id: 82618020, message: { message_id: 371, from: { id: 22303518, first_name: 'Steve', language_code: 'de-DE' }, chat: { id: 22303518, first_name: 'Steve', type: 'private' }, date: 1501509762, text: 'hello' } }
将会:
undefined hello 22303518 undefined
使用下面的方法来提取你的json对象的键,然后你可以用适当的键来访问:
Object.keys($.message.chat);