morfeditorial / machinima-telegram-adapter
Telegram platform adapter for the Machinima core app.
Package info
github.com/morfeditorial/machinima-telegram-adapter
Type:symfony-bundle
pkg:composer/morfeditorial/machinima-telegram-adapter
Requires
- php: >=8.4
- lcobucci/jwt: ^5.6
- morfeditorial/machinima-core: dev-main
- morfeditorial/telegram-bot-bundle: dev-main
- symfony/framework-bundle: 8.1.*
- symfony/http-client: 8.1.*
- symfony/notifier: 8.1.*
- symfony/telegram-notifier: 8.1.*
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.95
This package is auto-updated.
Last update: 2026-07-25 16:30:43 UTC
README
machinima-telegram-adapter
Telegram platform adapter for the Machinima platform.
Architecture · Env vars · Contributing
machinima-telegram-adapter is a Symfony bundle that implements the platform-specific integration between the Machinima core and the Telegram WebApp surface. It enables seamless zero-click authentication, UI hints processing, and native Telegram notification delivery by satisfying the core platform contracts.
Architecture
Provides the platform-specific implementations of the core Morfeditorial\MachinimaCoreBundle\Contract\* ports:
Morfeditorial\MachinimaCoreBundle\Contract\PlatformAdapterInterface→Morfeditorial\MachinimaTelegramAdapter\TelegramPlatformAdapter- bootstrap module (
Resources/public/js/telegram-bootstrap.js) — client-side zero-click detection, posted to core's/api/auth/bootstrap - UI-hints module (
Resources/public/js/telegram-ui-hints.js) — theme/back-button, only loaded for an already-authenticated Telegram session
- bootstrap module (
Morfeditorial\MachinimaCoreBundle\Contract\IdentityProviderPort(two, deliberately under different registry names — seeMiniApp\TelegramMiniAppIdentityProviderdocblock):telegram→Oidc\TelegramOidcProvider(OAuth-button login, validates an id_token)telegram_mini_app→MiniApp\TelegramMiniAppIdentityProvider(zero-click, validates raw Mini AppinitData; hidden from/loginviaBootstrapOnlyIdentityProvider)
Morfeditorial\MachinimaCoreBundle\Contract\UserNotificationAddressResolver→Morfeditorial\MachinimaTelegramAdapter\Notification\TelegramNotificationAddressResolverMorfeditorial\MachinimaCoreBundle\Contract\NotificationChannelPort→Morfeditorial\MachinimaTelegramAdapter\Notification\TelegramNotificationServiceMorfeditorial\MachinimaCoreBundle\Event\UserAuthenticatedEventbridge fromMorfeditorial\TelegramBotBundle\Event\TelegramUserAuthenticatedEvent→Morfeditorial\MachinimaTelegramAdapter\EventSubscriber\TelegramToIdentityBridge(used by the Telegram bot, i.e. chat commands — unrelated to Mini App zero-click login)
The adapter is loaded by the host application only when the active APP_PROFILE requires Telegram capabilities (e.g. telegram-webapp or telegram-bot). Core profiles (core-only) must not import any class from this package.
Env vars
TELEGRAM_BOT_TOKEN— used both bytelegram-bot-bundleand byTelegramMiniAppIdentityProviderto verify Mini AppinitDatasignatures.TELEGRAM_OIDC_CLIENT_ID/TELEGRAM_OIDC_CLIENT_SECRET/TELEGRAM_OIDC_REDIRECT_URI— OAuth-button login only.
Contributing
Contributions are welcome and appreciated! Here's how you can contribute:
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please make sure to update tests as appropriate and adhere to the existing coding style.
License
This bundle is licensed under the CSSM Unlimited License v2.0 (CSSM-ULv2). See the LICENSE file for details.