使用 JavaScript 登陆页面从 telegram bot 启动参数获取推荐代码,然后发送到 Laravel 后端

问题描述 投票:0回答:1

我正在制作一个电报迷你应用程序,它可以让用户选择推荐其他人使用该应用程序并获得奖励, 我已经完成了应用程序的身份验证和许多功能/逻辑。但是从参考链接中提取推荐代码,例如:https://t.me/my_bot?start=RefC0d3,我尝试了很多方法都不起作用

请有人帮助我,我被困在这里。 谢谢。

我的js代码如下:

const telegramWebApp = await loadTelegramSdk();
                if (telegramWebApp) {
                    const { id, first_name, username, start_param } = telegramWebApp.initDataUnsafe;
                    console.log('Telegram User Info:', { id, first_name, username, start_param });
    
                    const csrfToken = document.querySelector('meta[name="csrf-token"]')?.getAttribute('content');
    
                    const headers = {
                        'Content-Type': 'application/json',
                    };
    
                    if (csrfToken) {
                        headers['X-CSRF-TOKEN'] = csrfToken;
                    }
                    
                    const requestBody = {
                        ...telegramWebApp.initDataUnsafe,
                        referral_code: start_param // Add referral_code to the request body
                    };
    
                    const response = await fetch("{{ route('tg.authenticate') }}", {
                        method: 'POST',
                        headers: headers,
                        body: JSON.stringify(requestBody) // Send referral_code in the request body
                    });
    
                    const data = await response.json();
                    if (data.message === 'Logged in successfully' || data.message === 'User created and logged in') {
                        console.log(`Welcome ${first_name || username}!`);
                        setTimeout(() => {
                            window.location.href = '{{ route('tg.dashboard') }}'; // Redirect after 1.5 seconds
                        }, 1500);
                    } else {
                        console.error('Authentication failed:', data.message);
                    }
                }

在我的控制器中,我使用

Log::info('Request Input:', $request->all());
检查输入,但 javasacipt 没有发送推荐代码。

javascript laravel telegram-bot
1个回答
0
投票

您应该发送您需要的网络挂钩请求数据。

© www.soinside.com 2019 - 2024. All rights reserved.