ping api.telegram.org
不通,但是telegram客户端能正常访问。需要在代码里面使用代理。TelegramLongPollingBot
是使用socket连接,下面代码可以解决问题。
import org.telegram.telegrambots.bots.DefaultAbsSender;
import org.telegram.telegrambots.bots.DefaultBotOptions;
import org.telegram.telegrambots.meta.ApiContext;
import org.telegram.telegrambots.meta.TelegramBotsApi;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;
import org.telegram.telegrambots.meta.api.objects.Update;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
public class MyTelegramBot extends TelegramLongPollingBot {
public MyTelegramBot(DefaultBotOptions options) {
super(options);
}
@Override
public void onUpdateReceived(Update update) {
// Handle updates from Telegram here
}
@Override
public String getBotUsername() {
return "YourBotUsername";
}
@Override
public String getBotToken() {
return "YourBotToken";
}
public static void main(String[] args) {
// Create DefaultBotOptions instance
DefaultBotOptions botOptions = ApiContext.getInstance(DefaultBotOptions.class);
// Set HTTP proxy
// botOptions.setProxyHost("proxy_host");
// botOptions.setProxyPort(8080);
// botOptions.setProxyType(DefaultBotOptions.ProxyType.HTTP);
// Set Socks5 proxy
botOptions.setProxyHost("proxy_host");
botOptions.setProxyPort(1080);
botOptions.setProxyType(DefaultBotOptions.ProxyType.SOCKS5);
MyTelegramBot bot = new MyTelegramBot(botOptions);
TelegramBotsApi botsApi = new TelegramBotsApi(DefaultBotSession.class);
try {
botsApi.registerBot(bot);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
}