flutter_telegram_auth 0.1.5 copy "flutter_telegram_auth: ^0.1.5" to clipboard
flutter_telegram_auth: ^0.1.5 copied to clipboard

A Flutter plugin for integrating Telegram Login across Android, iOS, and Web. Uses native SDKs for mobile without webviews.

example/lib/main.dart

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter_telegram_auth/flutter_telegram_auth.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _status = 'Not logged in';

  @override
  void initState() {
    super.initState();
    // Initialize the SDK
    const String clientId = '8917418534';

    // Platform-specific redirect URIs
    final String redirectUri;
    if (Platform.isAndroid) {
      redirectUri = 'https://app838164528-login.tg.dev/';
    } else if (Platform.isIOS) {
      redirectUri = 'https://app2747532763-login.tg.dev/';
    } else {
      // Web yoki boshqa platformalar uchun
      redirectUri = 'https://app$clientId-login.tg.dev/';
    }

    FlutterTelegramAuth.init(clientId: clientId, redirectUri: redirectUri, scopes: ['openid', 'profile', 'phone']);
  }

  void _login() async {
    try {
      final idToken = await FlutterTelegramAuth.login();
      if (idToken != null) {
        // Ma'lumotlarni yechib olish
        final user = FlutterTelegramAuth.getLocalUserFromToken(idToken);
        final firstName = user?.firstName;

        setState(() {
          _status = 'Success! Welcome, $firstName\n\nJWT Token: $idToken';
        });
      }
    } catch (e) {
      print(e);
      setState(() {
        _status = 'Error: $e';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Telegram Auth Example')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Padding(
                padding: const EdgeInsets.all(5.0),
                child: Text(_status, textAlign: TextAlign.center, maxLines: 5),
              ),
              const SizedBox(height: 10),
              ElevatedButton(onPressed: _login, child: const Text('Login with Telegram')),
            ],
          ),
        ),
        bottomNavigationBar: (Platform.isAndroid || Platform.isIOS)
            ? Container(
                margin: const EdgeInsets.all(16),
                padding: const EdgeInsets.all(12),
                decoration: BoxDecoration(
                  color: Colors.amber.shade100,
                  borderRadius: BorderRadius.circular(8),
                  border: Border.all(color: Colors.amber.shade800),
                ),
                child: Text(
                  Platform.isAndroid
                      ? '⚠️ ATTENTION:\n'
                            'If the SHA-256 fingerprint in BotFather does not match your device\'s fingerprint, '
                            'Telegram will not be able to redirect back to the app.\n\n'
                            'Please use your own bot and SHA-256 for testing.'
                      : '⚠️ ATTENTION:\n'
                            'Ensure you have added "Associated Domains" in Xcode with your bot\'s domain '
                            '(e.g., applinks:appXXXX-login.tg.dev). Otherwise, the redirect will not work.\n\n'
                            'Please use your own bot for testing.',
                  textAlign: TextAlign.center,
                  style: const TextStyle(color: Colors.black87, fontSize: 13),
                ),
              )
            : null,
      ),
    );
  }
}
6
likes
160
points
252
downloads

Documentation

API reference

Publisher

verified publishermr-nodir.uz

Weekly Downloads

A Flutter plugin for integrating Telegram Login across Android, iOS, and Web. Uses native SDKs for mobile without webviews.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, flutter_web_plugins, plugin_platform_interface, web

More

Packages that depend on flutter_telegram_auth

Packages that implement flutter_telegram_auth