EDIT: тестирование только кода для GET-запроса (без телеграммы api) на моей малиновой пи. Вместо отправки сообщения tg я пишу его в файл. Я обнаружил, что волшебство происходит в этой части:отправить результат по запросу HTTP GET с телеграммой bot
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 и телеграмма бот апи.
Я пытаюсь сделать HTTP-запрос GET URL-адресу, который возвращает данные в формате JSON. Мне бы хотелось, чтобы бот отправил этот результат в чат.
Мой бот работает в спусках и записывается в NodeJS, используя this guide and code sample. Чтобы выяснить код для запроса GET, я использовал postman. Это уже помогло мне сделать запрос POST на этот URL. Поэтому я использую 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
?
Я боюсь действительно на этих двух, поэтому некоторая помощь действительно оценена!
Видя то же самое с ботом, который я разработал сегодня. Это выглядит так: https://github.com/python-telegram-bot/python-telegram-bot/pull/435 – Karlo
По запросу HTTP GET? У меня есть эта ошибка при каждой команде моего бота, но они все еще работают. –