2016-11-07 80 views
1

編輯:僅測試我的覆盆子pi上的GET-Request(沒有電報API)的代碼。我不是發送tg消息,而是將它寫入文件。我發現,魔術在這部分情況:使用電報機器人發送HTTP GET請求的結果

req.end(function (res) { 
    if (res.error) throw new Error(res.error); 

    console.log(res.body); 
    }); 

console.log(res.body)給我這個輸出(這是表的正確名稱/列):

{ test: 
    { columns: [ 'eventID', 'event_desc' ], 
    records: 
     [ [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object], 
     [Object] ] } } 

但是,如果我將其替換爲fs.appendFile("getrequest.log",res.body + "\n");我只得到:

[object Object] 

任何想法,爲什麼當我用另一個函數的結果改變?


原題:

我在來和的NodeJS電報機器人API真正的新。

我想要的是一個HTTP GET請求到一個URL,它以JSON格式返回數據。我希望bot能將這個結果發送到聊天中。

我的機器人運行在openshift上,使用this guide and code sample寫入NodeJS中。爲了弄清GET請求的代碼,我使用了postman。它已經幫助我向這個URL發出POST請求。所以我使用unirest和驗證碼:

bot.onText(/\/list (.+)/, function (msg, match) { 

    var fromId = msg.chat.id; 
    var eventDb = match[1]; 
    var eventURL = "https://api.italianrockmafia.ch/api.php/"; 
    eventURL += eventDb; 
    var unirest = require("unirest"); 

    var req = unirest("GET", eventURL); 

    req.headers({ 
    "cache-control": "no-cache" 
    }); 

    req.end(function (res) { 
    if (res.error) throw new Error(res.error); 

    console.log(res.body); 
    }); 
    bot.sendMessage(fromId, req); 
}); 

所以我不知道我必須bot.sendMessage();使用的值,並在那裏我必須使用此功能。我嘗試了幾種組合(使用req,res,res.body)但他們都沒有工作。

如果我使用上面的代碼,日誌中會顯示message ist empty。 當我改變的最後一個行:

req.end(function (res) { 
    bot.sendMessage(fromId, res); 
    if (res.error) throw new Error(res.error); 

    console.log(res.body); 
}); 

日誌只拋出了在電報模塊它自身的一個文件「指定了錯誤的文件標識符/ HTTP URL」。這條消息顯示在每個命令(即使那些正在工作)。

所以我的2個問題是:

  • 我需要哪個送價值?
  • 哪裏在代碼中我需要把bot.sendMessage

我在這兩個真的很掙扎,所以一些幫助真的很感激!

+0

看到我今天開發的機器人同樣的東西。這看起來相關:https://github.com/python-telegram-bot/python-telegram-bot/pull/435 – Karlo

+0

在HTTP GET請求?我在我的機器人的每個命令都有這個錯誤,但他們仍然工作。 –

回答

0

我覺得這事做與inputfile限制

提供電報與HTTP URL要發送的文件。電報 將下載併發送文件。對於其他類型的內容,照片最大爲5 MB,對於最大爲20 MB 。

+0

謝謝你的回答!我不確定我是否正確地使用它,但在我的示例中,我不會嘗試發送I文件。我想發送我發送HTTP請求的頁面的主體。 (REST API)。也。郵差說答案只有976字節大...... –