vk to telegram forwarder
Powered by Telegraf
Installation
npm install vk-to-telegram --save
Example
const app = require('express')()
const bodyParser = require('body-parser')
const vkToTelegram = require('vk-to-telegram')
const vkToTg = new vkToTelegram({
botToken: 'your bot token',
chatName: 'telegram chat/channel name',
ownerId: 'your telegram id',
vkToken: 'your very long token from vk api',
vkConfirmation: 'group confirmation'
})
app.use(bodyParser.json())
app.post('/', (req, res) => {
vkToTg.send(req, res)
.then(() => console.log('Done!'))
.catch((err) => {
console.log('Something went wrong')
console.log(err)
})
})
app.listen(80,()=>{
console.log('listening on port 80')
})
What is this?
It is a tool for express which using VK callback api forwards posts from group in channel or chat in Telegram!
They use vk-to-telegram in production
What content does it forward?
Content type | Works fully? |
---|
Photo(s) | Yes |
Video(s) | Yes , as links. |
Audio(s) | NO. Why? Read here. |
Document(s) | Yes |
Link | Yes , but VK do terrible things ... with links titles written by cyrillic. |
Application Content | Yes |
Poll | Not yet, but forwarder will send link to poll. |
Album(s) | Yes , as photos in the caption have links to the album(s). |
Graffiti | Not tested. |
Wiki Page | Not tested. |
Market item | Not tested. |
Sticker | Not tested. |
Free usage
If you want to test this code, or to use on a regular basis(beta, works via heroku), please contact me for details.
Variables
Variable | Type | Required | Description |
---|
token | String | Yes | Bot token from Botfather |
chatName | String | Yes | Telegram channel or group link, like '@tavernofheroes' |
chatId | Number | Optional | If you know your chat/channel id, put it here, it will replace chatName parameter |
ownerId | Number | Yes | Your telegram id for sending error if they are. U can get know it from @getidsbot |
vkConfirmation | String | Yes | Confirmation string from ur group callback api server: |
fromId | Number | Optional | VK group id with '-'in start or nothing, if you don't need check. |
customVkButton | String | Optional | Title for button which will be added to each post to open it in VK |
customPollTitle | String | Optional | Custom template string in the title of button with URL to poll("Open poll" -> "Open poll - ${poll.question}") |
customLongPostText | String | Optional | Custom template string that replace full post text, because it's too long for Telegram(max 4096 characters) ("Too long post... [Read full]" -> "Too long post... <a href="https://vk.com/poll${poll.owner_id}_${poll.id}">Read full" and parse as HTML) |
signed | String | Optional | Custom template string that add post signer in the end of Telegram message ("Post By" -> "\n\nPost by <a href="https://vk.com/id${post.signer_id}">${signer.first_name} ${signer.last_name}" and parse as HTML) |
heroku | Boolean | Optional | Add filter that stops forwarder if detect that post repeats(Because of app sleeping) |
vkToken | String | Yes | Follow the instructions below: |
| | | 1. Create Standalone application here: https://vk.com/apps?act=manage |
| | | 2. Open settings in created application and copy application id |
| | | 3. Open this link with replace your application id: |
| | | https://oauth.vk.com/authorize?client_id=YOUR APPLICATION ID&display=page&redirect_uri=http://vk.com/&scope=offline,video,docs&response_type=token&v=5.73 |
| | | 4. Click allow all that need's and it's all! Your token is in query url, do not copy all link, only token without other params. |
- DON'T forget to pick in your vk group api dashboard event type 'WALL POST - NEW'.
- Recommend to use vk api v5.71
Contact
Here's a telegram group ¯\(ツ)/¯
Also u can write to me directly in Telegram,
VK or by mail