Vk to telegram forwarder
npm install vk-to-telegram

npm i vk-to-telegram --save
``js
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', // number
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')
})
`
It is a tool for express which using VK callback api forwards posts from group in channel or chat in Telegram!
Here's example with koa2
`js`
app.use(bodyParser())
app.use(async ctx => {
const result = await vkToTg.send(ctx)
console.log(result)
})
|
|
|
|
|
|-|-|-|-|
| AlexandriA (AAR) | PanzerSofa | Олег Ливанов | ongoing research |
|
|
|
|
|
| аниреакт | Otaku Squad | disgusting otaku | Fond SpeedWagona|
| Content type | Works fully? |
| - | - |
| Photo(s) | Yes |Yes
| Video(s) | | Yes
| Document(s) | |Yes
| Link | | Yes
| Application Content | |Yes
| Poll | |Yes
| Audio(s) | NO. Why? Read here. |
| Album(s) | |Not tested.
| Graffiti | |Not tested.
| Wiki Page | |Not tested.
| Market item | |Not tested.
| Sticker | |
If you want to test this code, or use on a regular basis (via heroku), please contact me for setup.
|Variable|Type|Required|Description|
|-|-|-|-|
| token|String|Yes|Bot token from Botfather|chatName
| |String | Yes | Telegram channel or group link, like '@tavernofheroes'|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: vkToken
|
| |String| Yes | Follow the instructions below:|chatId
||||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.81|
||||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. |
||Number|Optional|If you know your chat/channel id, put it here, it will replace chatName parameter|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... \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 \${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)|herokuTimeout
||Number|Optional|Heroku post delay between same posts|secret
||String|Optional|Secret field from vk admin panel to verify that post has come from VK|filterByWord
||String|Optional|Filter posts by key word(s) (use ',' as separator) (use '-' in begin of word to invert)|filterByHashtag
||String|Optional|Filter posts by hashtag (use ',' as separator) (use '-' in begin of word to invert)|ads
||Boolean|Optional|Forward posts marked as ads? (By default true)|repostAds
||Boolean|Optional|Forward reposts marked as ads? (By default true)|appendText
||String|Optional|Append text to forwarded post (can be used for hashtags for channel navigation)|prependText
||String|Optional|Same as appendText but it's will prepend it in the start of post text|repost
||Boolean|Optional|Allow to forward post with repost (By default true)| sendNativePoll
||Boolean|Optional|Use native Telegram poll instead of link to poll in VK, set false to use poll in VK|criedHalfBea
||Boolean`|Optional|Use Z sized pictures as max. (Reduces pictures aliasing)|
* DON'T forget to pick in your vk group api dashboard event type 'WALL POST - NEW'.
* Recommend to use vk api v5.103