Skip to content

Instantly share code, notes, and snippets.

@saber13812002
Forked from manzoorwanijk/README.md
Created February 8, 2020 15:18
Show Gist options
  • Save saber13812002/c050ae10da7f0e0875e452003b2a4182 to your computer and use it in GitHub Desktop.
Save saber13812002/c050ae10da7f0e0875e452003b2a4182 to your computer and use it in GitHub Desktop.
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

  • 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 File > Save or press Ctrl+S
  • Click "Publish" from the menu and select "Deploy as web app..."
  • If asked, Enter any name for the project and click "OK"
  • In "Execute the app as:", select "Me (<your email>)" [IMPORTANT]
  • In "Who has access to the app:", select "Anyone, even anonymous" [IMPORTANT]
  • Click "Deploy" to open the Authorization box.
  • Click "Review Permissions" to authorize the script.
  • In the popup window select your Google Account.
  • On the next screen, click "Allow".
  • After redirection, you should see "This project is now deployed as a web app."
  • Copy the "Current web app URL:" and paste it in your app or plugin

Watch the video

Watch the video here

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