首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用telegraf网络钩子?

如何使用telegraf网络钩子?
EN

Stack Overflow用户
提问于 2021-01-13 11:53:51
回答 2查看 4.5K关注 0票数 3

我想在telegraf中使用webHook,但我不知道如何正确使用它。

这是我的简单代码。但它仍然使用轮询。

代码语言:javascript
复制
    const Telegraf = require('telegraf');
    const bot = new Telegraf('123:ABC');

    bot.telegram.setWebhook('https://myaddress.com');
    bot.startWebhook(`/`, null, 4000);



    bot.use(function(ctx, next){
        try{
            if(ctx.chat == undefined) return;
            console.log("Hello World");
        }catch (e){
            console.log("Error");
        }
    });


    bot.launch();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-18 21:17:04

bot.startWebhook()被称为Telegraf 将开始收听提供的web钩子url。时,因此您不需要在此之后调用bot.launch()

此外,如果没有指定选项,则为bot.launch() 将在默认情况下以轮询模式启动bot。,如您的情况所示。

删除bot.launch(),bot应该以web钩子模式启动。

Telegraf.js ^4.0.0

如果您使用的是Telegraf.js Version4.0或更高版本,则变化量g声明:

现在应该始终使用bot.launch启动机器人,并为长轮询(默认)或webhooks配置相应的配置。

因此,您还可以尝试删除bot.telegram.setWebhook()bot.startWebhook(),然后添加以下代码:

代码语言:javascript
复制
bot.launch({
  webhook: {
    domain: 'https://myaddress.com',
    port: 4000
  }
})

有关参考,请参阅文档中的这个例子

票数 11
EN

Stack Overflow用户

发布于 2021-11-09 19:33:21

这是为我工作的:

代码语言:javascript
复制
  bot.startWebhook('/messages', null, 8443);
  bot.launch();

第二个参数是tlsOptions,它是可选的。

我读过电报只接受80,88,443和8443的网络钩子。

不确定是否正确,但这是一个重要的考虑,因为它是非常困难的故障排除网络钩子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65701466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档