UniversalTelegramBot proxy
- Войдите на сайт для отправки комментариев
Ср, 18/04/2018 - 07:03
Добрый день!
Кто-нибудь пробовал переписать библиотеку UniversalTelegramBot.h с использованием proxy socks5?
Добрый день!
Кто-нибудь пробовал переписать библиотеку UniversalTelegramBot.h с использованием proxy socks5?
Нет, не пробовал, никто не любит хайпы и хайповальщиков. Но задача вполне выполнимая.
Во всех функциях внутри UniversalTelegramBot.cpp нужно заменить код подключения с проверкой к серверу (строки 100-108, например, и другие такие же) на своё подключение. Connect делаем не на HOST, SSL_PORT, а на socks5_ip, socks5_port. Если сокет успешно приконнектился, шлём в него \х5 \х1 \х0. Читаем двухбайтовый ответ, оттуда должны ответить \х5 \х0. Теперь шлём туда \х5 \х1 \х0 \х3 \х10 api.telegram.org \х1 \хBB. Читаем десять байт, если первые три равны \х5 \х0 \х0, значит всё нормально и сокет успешно подключен к серверу телеграм через сокс5, далее включаем ssl на этом сокете и работаем как обычно.
Нет, не пробовал, никто не любит хайпы и хайповальщиков. Но задача вполне выполнимая
Я не ради хайпа. Бот перестал работать, а у меня на него много в умном доме завязано. Спасибо попробую разобраться
мне тоже интересна эта тема, бот перестал отвечать (
будут результаты, поделитесь
мне тоже интересна эта тема, бот перестал отвечать (
будут результаты, поделитесь
К сожалению моих знаний не хватает для переделки. Решил запустить трафик от arduino через VPN на роутере.
Здравствуйте.
я через библиотеку UniversalTelegramBot.h отправляю с бота, но боту никак не могу отправить (он не видит их).
у меня связка arduino nano vs sim800
не подскажете, может знаете как принять сообщение в бота?
вот код для отправки сообщений
#define TINY_GSM_MODEM_SIM800 #include <TinyGsmClient.h> #include <ArduinoHttpClient.h> #include <UniversalTelegramBot.h> #include <SoftwareSerial.h> SoftwareSerial SerialAT(7, 6); // RX, TX #define DUMP_AT_COMMANDS #define SerialMon Serial #ifdef DUMP_AT_COMMANDS #include <StreamDebugger.h> StreamDebugger debugger(SerialAT, SerialMon); TinyGsm modem(debugger); #else TinyGsm modem(SerialAT); #endif const char apn[] = "*******"; //apn const char user[] = ""; //username const char pass[] = ""; //pass // Initialize Telegram BOT #define BOTtoken "******" // int Bot_mtbs = 1000; //mean time between scan messages long Bot_lasttime; //last time messages' scan has been done TinyGsmClientSecure client(modem); UniversalTelegramBot bot(BOTtoken, client); void setup() { Serial.begin(9600); delay(10); // Set GSM module baud rate SerialAT.begin(9600); delay(3000); modem.sendAT(GF("+HTTPSSL=1")); //enable ssl. maybe don't need modem.waitResponse(); if (!modem.hasSSL()) { Serial.println("SSL is not supported by this modem"); //delay(10000); return; } //wait for network Serial.print(F("Waiting for network...")); if (!modem.waitForNetwork()) { Serial.println(" fail"); delay(10000); return; } Serial.println(" OK"); //connect to gprs Serial.print(F("Connecting to ")); Serial.print(apn); if (!modem.gprsConnect(apn, user, pass)) { Serial.println(" fail"); delay(10000); return; } else {Serial.println(" OK");} //not needed actually IPAddress local = modem.localIP(); modem.waitResponse(); Serial.println(local); } void loop() { String chat_id = "*****"; String text = "start"; String parses = ""; Serial.println("Send message"); Serial.println(bot.sendMessage(chat_id, text, parses)); delay(30000); }вот для приема сообщения, не работает..
#define TINY_GSM_MODEM_SIM800 #include <TinyGsmClient.h> #include <ArduinoHttpClient.h> #include <UniversalTelegramBot.h> #include <SoftwareSerial.h> SoftwareSerial SerialAT(7, 6); // RX, TX #define DUMP_AT_COMMANDS #define SerialMon Serial #ifdef DUMP_AT_COMMANDS #include <StreamDebugger.h> StreamDebugger debugger(SerialAT, SerialMon); TinyGsm modem(debugger); #else TinyGsm modem(SerialAT); #endif const char apn[] = "internet.tele2.ru"; //apn const char user[] = ""; //username const char pass[] = ""; //pass // Initialize Telegram BOT //#define BOTtoken "438295695:AAHF8YCKdt_FoWYGn4eDVqqeCXBaM7f-xeQ" // My Home Mytesthome_bot //#define BOTtoken "550569371:AAH0AdfvC_P9IM8gTgP2Pjn0AfNVcKIE-bA" // ESP8266 ESP2433_bot //#define BOTtoken "591715154:AAEnGf50Mu2rv6XdiQ-iKtVHC8q2H-_q0fw" // Alarm Alarm2433_bot #define BOTtoken "621836655:AAE5-8gVV-cLBK8FCAiIwlPHj_sA-vb1jdw" // 2433 int Bot_mtbs = 1000; //mean time between scan messages long Bot_lasttime; //last time messages' scan has been done TinyGsmClientSecure client(modem); UniversalTelegramBot bot(BOTtoken, client); void setup() { Serial.begin(9600); delay(10); // Set GSM module baud rate SerialAT.begin(9600); delay(3000); modem.sendAT(GF("+HTTPSSL=1")); //enable ssl. maybe don't need modem.waitResponse(); if (!modem.hasSSL()) { Serial.println("SSL is not supported by this modem"); //delay(10000); return; } //wait for network Serial.print(F("Waiting for network...")); if (!modem.waitForNetwork()) { Serial.println(" fail"); delay(10000); return; } Serial.println(" OK"); //connect to gprs Serial.print(F("Connecting to ")); Serial.print(apn); if (!modem.gprsConnect(apn, user, pass)) { Serial.println(" fail"); delay(10000); return; } else {Serial.println(" OK");} //not needed actually IPAddress local = modem.localIP(); modem.waitResponse(); Serial.println(local); } void loop() { if (millis() > Bot_lasttime + Bot_mtbs) { int numNewMessages = bot.getUpdates(bot.last_message_received + 1); while(numNewMessages) { Serial.println("got response"); for (int i=0; i<numNewMessages; i++) { bot.sendMessage(bot.messages[i].chat_id, bot.messages[i].text, ""); } numNewMessages = bot.getUpdates(bot.last_message_received + 1); } Bot_lasttime = millis(); } }