gpt4 book ai didi

telegram - 如何从 Telegram API 获取最新/新消息

转载 作者:行者123 更新时间:2023-12-02 13:27:06 25 4
gpt4 key购买 nike

我正在尝试从 Telegram API(不是机器人 API)获取最新消息。我目前正在使用 messages.getHistory 但它会从头开始返回所有消息。如果我收到新消息(自从我登录后),那也没关系。

到目前为止,我最好的选择是读取所有消息,然后跟踪偏移量,这样我就不会再次读取相同的消息,但这太慢并且资源昂贵。

最佳答案

查尔斯的回答为我指明了正确的方向。对于那些对 Node.js 版本感兴趣的人,我设法通过使用 telegram-link 模块并将 connectionType 设置为 TCP 来使其工作:

var telegramLink = require('telegram.link')();

// set the environment
var app = {
// NOTE: if you FORK the project you MUST use your APP ID.
// Otherwise YOUR APPLICATION WILL BE BLOCKED BY TELEGRAM
// You can obtain your own APP ID for your application here: https://my.telegram.org
id: 12345,
hash: 'somehashcode',
version: require('../package.json').version,
lang: 'en',
deviceModel: os.type().replace('Darwin', 'OS_X'),
systemVersion: os.platform() + '/' + os.release(),
connectionType: 'TCP'
};

//var primaryDC = telegramLink.TEST_PRIMARY_DC;
var primaryDC = telegramLink.PROD_PRIMARY_DC;

...

telegramLink.createClient(app, dataCenter, function() {
...

简单点就是,改成TCP就能达到你想要的效果,你会在registerOnUpdates中得到推送给你的消息:

clientProxy.getClient().account.updateStatus(false).then(function() {
clientProxy.getClient().registerOnUpdates(function(update) {
console.log('update', update.toPrintable());

clientProxy.getClient().messages.receivedMessages(update.id, function(err) { console.log(err); });
});
...

注意收到的消息 - 如果您不调用此消息,那么 Telegram 将不会向您发送任何新的更新。如果您的 Telegram 链接中未定义 receiveMessages,请将以下代码添加到 lib/api/messages.js:

// ***
// messages.**receivedMessages(max_id, [callback])**

// Return a Promise to Confirms receipt of messages by a client, cancels PUSH-notification sending.

// [Click here for more details](https://core.telegram.org/method/messages.receivedMessages)
Messages.prototype.receivedMessages = function(max_id, callback) {
return utility.callService(api.service.messages.receivedMessages, this.client, this.client._channel, callback, arguments);
};

关于telegram - 如何从 Telegram API 获取最新/新消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43178748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com