2017-07-31 9 views
1

私は現在作業中のテレグラムボットに関する問題があります。私は、次の形式でユーザーからのメッセージを取得:テレグラムメッセージからメッセージIDを取得する - node.js

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' } } 

私が取得したいとすぐに

$.message.chat.id 

を使用して、私は何の問題もなくこれを行うことができますチャットのIDにアクセスしたいですmessage_idまたはfirst_name Iは「未定義」になります。

$.message.chat.first_name 

$.message.message_id 

誰でも私を助けることができますか?私が見ている限り、私はメッセージの構造を正しく理解しているので、ここで何が問題か分かりません。

はあなたに事前

EDITで非常に感謝:私はここに私のコードのビット以上を追加してい:

を(ウェブフック含む)ボットのための主要なコードはこれです:

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()); 

} 

ThenControllerが呼び出されると、次のコードが呼び出されます(問題を明確にするために、必要な部分を減らしました)。

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 
+0

あなたのコードをもっと共有してください。 – tashakori

+0

@ tashakoriコードを追加しました。前もって感謝します。 – DesperateEi

+0

あなたはこの方法でプロパティにアクセスしようとしました:$ .message.chat ["first_name"] – tashakori

答えて

1

、あなたは適切なキーでアクセスすることができ、あなたのJSONオブジェクトのキーを抽出するために、以下のメソッドを使用します。

Object.keys($.message.chat); 
関連する問題