2016-11-07 96 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字节大...... –