Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Google Script to bypass the blockage of Telegram Bot API from by webhost

WPTelegram Google Script

You can use this script to bypass the bans on Telegram API by different hosts. Simply send the request to this script instead of the Telegram Bot API after deploying it as a web app and allowing anonymous access.

Params

It accepts bot GET and POST requests with the following params

name type Description
bot_token String The Telegram Bot Token
method String Telegram Bot API method name e.g. sendMessage
args JSON Object The arguments/params for the API method e.g. {"chat_id":"123","text":"HelloWorld"}

How to Deploy

See the screenshots below 👇

  • Goto script.google.com and sign in if required.
  • Create a New project and give it a name you love :)
  • It should open a file (Code.gs by default). Remove the contents of this file.
  • Copy the contents of wptelegram-google-script.gs below and paste into your project file (Code.gs)
  • Click on Save (💾) or press Ctrl+S
  • Click "Deploy" at the top and select "New deployment" and it will open a popup
  • Inside the popup, click on "Select type" ⚙️ and choose "Web app"
  • In "Web app" Execute as", select "Me (<your email>)" [IMPORTANT]
  • In "Who has access", select "Anyone" [IMPORTANT]
  • Click on "Deploy" to open the Authorization box.
  • Click on "Authorize access" to authorize the script.
  • In the popup window select your Google Account.
  • If you see a warning "Google hasn't verified this app", it is fine to click "Advanced" and choose "Go to <app name> (unsafe)"
  • On the next screen, click "Allow".
  • After redirect, you should see "Deployment successfully updated"
  • Copy the "Web app URL" and paste it in your app or plugin
function doGet(e) {
if(typeof e !== 'undefined'){
return requestHandler(e);
}
}
function doPost(e) {
if(typeof e !== 'undefined'){
return requestHandler(e);
}
}
function requestHandler(e){
var res = handleRequest(e);
return ContentService.createTextOutput(res);
}
function handleRequest(e) {
if(typeof e.parameter.bot_token === 'undefined'){
return 'Error! Bot token not provided';
} else if(typeof e.parameter.method === 'undefined') {
return 'Error! Method name not provided';
}
var bot_token = e.parameter.bot_token;
var tg_method = e.parameter.method;
var data = {
"method": "post",
"muteHttpExceptions": true
}
if(typeof e.parameter.args !== 'undefined'){
var args = e.parameter.args;
data.payload = JSON.parse(args);
}
var res = UrlFetchApp.fetch('https://api.telegram.org/bot' + bot_token + '/' + tg_method, data);
return res.getContentText();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment