Skip to content

Instantly share code, notes, and snippets.

@ryanamaral
Forked from manzoorwanijk/README.md
Created July 5, 2020 16:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryanamaral/0cf514f110a521bfa81a7fc5af684ca0 to your computer and use it in GitHub Desktop.
Save ryanamaral/0cf514f110a521bfa81a7fc5af684ca0 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