我的使用方式如下:
class Bot {
constructor(token) {
let _baseApiURL = `https://api.telegram.org`;
//code here
}
getAPI(apiName) {
return axios.get(`${this.getApiURL()}/${apiName}`);
}
getApiURL() {
return `${this.getBaseApiUrl()}/bot${this.getToken()}`;
}
getUpdates(fn) {
this.getAPI('getUpdates')
.then(res => {
this.storeUpdates(res.data);
fn(res.data);
setTimeout(() => {
this.getUpdates(fn);
}, 1000);
})
.catch(err => {
console.log('::: ERROR :::', err);
});
}
}
const bot = new Bot('mytoken');
bot.start();
我想知道是否有更好的方式来收听Telegram的更新,而不是使用超时和重做Ajax调用来获取' getUpdates' API
答案 0 :(得分:1)
Telegram支持轮询或webhook,因此您可以使用后者来避免轮询getUpdates
API
有两种互斥方式可以接收您的更新 bot - 一方面是getUpdates方法,另一方面是Webhooks。 传入的更新存储在服务器上,直到机器人收到它们 无论哪种方式,但不会超过24小时。
无论选择哪个选项,您都会收到JSON序列化的Update对象。