VKTote is an automatic posting tool that transfers posts from VK groups to Telegram channels.
- π€ Automatic Posting - Automatically fetch and forward VK group posts to Telegram
- π₯ Multiple Groups - Support for managing multiple VK group profiles
- ποΈ Web Control Panel - User-friendly interface for group management
- π Rich Media Support - Handles photos, videos, links, and text posts
- π API Access - RESTful API for programmatic access
- π Security - CSRF protection and secure authentication
New to VKTote? Get started in minutes:
- Installation Guide - Set up the application
- Configuration Guide - Configure your first group
- Basic Usage - Learn the basics
- Installation - System requirements and setup
- Configuration - Configuring VK and Telegram
- Basic Usage - Core functionality
- Control Panel - Web interface guide
- API Overview - Introduction to the API
- Endpoints - Available API endpoints
- Project Structure - Code organization
- Troubleshooting - Common issues and solutions
| Requirement | Version |
|---|---|
| PHP | 8.1 or higher |
| MySQL | 5.7+ |
| Apache/Nginx | Latest |
| Composer | 2.0+ |
To install, use the command: git clone https://github.com/aidsoul/vktote.
Download the necessary libraries using the command: composer install.
Or use command composer create-project aidsoul/vktote.
Import the database file: db.sql.
All files for working with groups are located in the "groups" folder.
In the "groups" folder, folders with the files listed below are added. All these files are needed for work. Come up with a name for the folder yourself.
The following example is a true profile group creation:
groups
[test]=>[config.ini]
[test1]=>[config.ini]
[test...]=>[config.ini]
If necessary, you can change the folder and the name of the files in the configuration file "config.php".
Configuration file "config.ini" should look like this:
[Db]
host="localhost"
dbName="vk"
user="root"
pass=""
[Vk]
token ="Your token"
idGroup="Group id or name"
count="Number of posts to capture"
[Telegram]
botApiKey="Bot API Key"
botName="Bot name"
chatId="Chat Id for send post"
[Bot]
lang = "eng"If there is a need to use a different database for each profile of the group you need to change the constant "DB_COMMON" in config.php by setting the value to "true". You should also add: DB_HOST, DB_NAME, DB_USER, DB_PASS.
The following bot languages are available: English (eng) and Russian (rus).
For the convenience of creating group profiles, use the control panel.
Use "localhost" to log in to the control panel. Click on the log in button. The first time you login, a password will be created. You need to remember the password, it will be used to access the control panel. Go to settings "localhost/settings" and create a new group profile by clicking on the "Create a settings profile" button.
Use crontab on your server or another task scheduler to get fresh posts without stopping.
Open and add a task to the task list: crontab -e.
Get fresh entries every minute: * * * * * php start.php group_folder.
Below is an example of running a task for the "test" group profile. Test is specified as an argument.
*/5 * * * * php start.php test
All API queries start with https://domain/api/
Accepts a GET request with the parameter "group".
Example: https://domain/api/bot.start?group=group_name
- Framework: Custom PHP MVC
- Router: League\Route
- Templating: Twig
- Database: MySQL with PDO
- HTTP Client: Guzzle
- π GitHub Repository
- π Issue Tracker
- π§ Contact Author
This project is licensed under the MIT License.