Add Google Apps Script version
This commit is contained in:
21
Google Apps Script version/README.md
Normal file
21
Google Apps Script version/README.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Tangmo FxTwitter Bot (Google Apps Script version)
|
||||||
|
|
||||||
|
Telegram bot that monitor for a message with just Twitter link without preview and reply with [FxTwitter](https://github.com/FixTweet/FixTweet) link
|
||||||
|
|
||||||
|
1. Register Telegram bot
|
||||||
|
1. Setup Google Apps Script
|
||||||
|
1. Create a Google Sheets
|
||||||
|
1. Click Extensions > Apps Script.
|
||||||
|
1. Paste the code from this repo, click "Save"
|
||||||
|
1. Go to Project Settings tab
|
||||||
|
1. Scroll to the bottom, "Script Properties", and add a `TELEGRAM_BOT_TOKEN` property
|
||||||
|
1. At the top right of the script project, click Deploy > New deployment > Web app. Run as me, anyone can access
|
||||||
|
1. Copy the webapp URL. It should look like https://script.google.com/macros/s/some-long-id/exec
|
||||||
|
1. Register Web hook
|
||||||
|
```sh
|
||||||
|
curl --request POST \
|
||||||
|
--url https://api.telegram.org/bot123:bottokenhere/setWebhook \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data '{"url": "https://script.google.com/macros/s/some-long-id/exec"}'
|
||||||
|
```
|
||||||
|
1. It should work now
|
||||||
25
Google Apps Script version/TangMo_fxtwitter_bot.gs
Normal file
25
Google Apps Script version/TangMo_fxtwitter_bot.gs
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
function doPost(e) {
|
||||||
|
const contents = JSON.parse(e.postData.contents);
|
||||||
|
if (contents.message?.media_group_id || !contents.message?.text) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const found = contents.message.text.match(/https?:\/\/(?:mobile\.)?twitter\.com\/(\w+)\/status\/(\d+)(\/photo\/\d)?/);
|
||||||
|
if (found) {
|
||||||
|
// Feel free to hardcode bot token, reducing PropertiesService usage quota
|
||||||
|
UrlFetchApp.fetch(`https://api.telegram.org/bot${PropertiesService.getScriptProperties().getProperty('TELEGRAM_BOT_TOKEN')}/`, {
|
||||||
|
method: "post",
|
||||||
|
payload: {
|
||||||
|
method: "sendMessage",
|
||||||
|
chat_id: String(contents.message.chat.id),
|
||||||
|
text: `https://fxtwitter.com/${found[1]}/status/${found[2]}${found[3] || ''}`,
|
||||||
|
reply_to_message_id: String(contents.message.message_id),
|
||||||
|
disable_notification: true,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function doGet() {
|
||||||
|
return HtmlService.createHtmlOutput('Webhook Endpoint for <a href="https://t.me/TangMo_fxtwitter_bot">@TangMo_fxtwitter_bot</a> Telegram bot');
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user