求助:开发TelegramBot遇到的问题

环境:Java1.8、IDEA
依赖版本:Springboot2.7.6、telegrambots6.0.1
问题:本地调式Bot的时候出现Connect to api.telegram.org:443 [api.telegram.org/173.244.217.42, api.telegram.org/2a03:2880:f11c:8083:face:b00c:0:25de] failed: Connection timed out: connect 链接超时的现象 本地是有开代理 代理里面也配置代理

代码:
public TelegramBotsApi initTelegramBot() throws TelegramApiException {
log.info(“initTelegramBot”);
DefaultBotOptions defaultBotOptions = new DefaultBotOptions();
// 设置代理信息
if (StringUtils.isNotBlank(proxyHost) && proxyPort != null) {
defaultBotOptions.setProxyHost(proxyHost);
defaultBotOptions.setProxyPort(proxyPort);
defaultBotOptions.setProxyType(DefaultBotOptions.ProxyType.HTTP);
}
DefaultBotSession defaultBotSession = new DefaultBotSession();
defaultBotSession.setOptions(defaultBotOptions);
TelegramBotsApi telegramBotsApi = new TelegramBotsApi(defaultBotSession.getClass());
// 注册机器人
telegramBotsApi.registerBot(telegramBot);
return telegramBotsApi;
}

麻烦各位大佬们给看看具体是什么问题,目前来看好像是设置代理信息这块代码不生效。

1 Like

timeout 稳稳被墙啊。要么设置大一点timeout

4 Likes

吾皇 我目前使用的这个节点是能够访问 api.telegram.org:443的在浏览器里面 使用其他节点能解决吗

2 Likes

你的代码未必用了这个节点啊

3 Likes

是的 我怀疑是没用到 因为我看代理工具的日志 并没有输出相关的日志 吾皇 给点解决思路呗

2 Likes

你代码里手动设置一下代理,timeout数值也代码里调大一点

3 Likes

defaultBotOptions.setProxyHost(proxyHost);
defaultBotOptions.setProxyPort(proxyPort);
defaultBotOptions.setProxyType(DefaultBotOptions.ProxyType.HTTP);

这段代码就是官方给的设置代理的方案 但是好像不生效。

2 Likes

我的方案是搭了个cloudfare代理,就不需要本地代理了,本地只需要改下host

2 Likes

使用 Socks5协议

2 Likes

具体的实现可以分享一下吗 佬

2 Likes

看看你的代理工具里面的日志啊

1 Like

发不了链接,google搜「cloudfare代理telegram」有很多教程

1 Like

我看过代理工具里面没有日志

2 Likes

好的 谢谢佬

2 Likes

佬 也是用java开发的Bot吗

2 Likes

From #develop:qa to 开发调优