从电报信息中获取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);