Как передать переменную из телеграмм бота в приложение?
Имеется телеграмм бот (написанный на телебот), приложение на python (на библиотеке flet) и sqlite база данных. Пользователь запускает телеграмм бота, после чего его заносит в базу данных. В моменте работы телеграмм бота ему известна чему равна переменная user_id пользователя, и вот эту переменную нужно передать когда пользователь переходит из телеграмм бота в приложение по кнопке. Как можно передать эту переменную? Я пробовал через urlparse, то есть в приложении прописать строчку кода где будет доставаться переменная из ссылки, вот только как написать чтобы приложение достало эту самую ссылку на которой оно и открыто.
А как пользователь попадает в приложение? Какая-то ссылка?
Так-то можно в ссылку передать user_id. Условно, пусть есть url://to.application/some/path, вот превратить его в url://to.application/some/path?u=id_пользователя. Можно для защиты от ручного спуффинга id приделать тривиальную криптографию. Например, приписывам тайное слово к id, берём MD5 и получаем некий проверочный код. Можно даже отрезать от него несколько символов. Тогда передаём в ссылке u=id_пользователя&d=секретный_код и на стороне приложения проверяем, что вычисленный по id код совпадает с переданным.
Я просто не знаю, можно ли в ссылках на приложение передавать параметры...
shurshur, пользователь попадает в приложение через ссылку, вида https://example.com/?user_id={user_id}. И открывается приложение в этой ссылке, но вот как только приложению понять в какой ссылке он находится, чтобы пропарсить эту ссылку и достать от нее переменную?
Matox, если перекидывает на сайт по url-ссылке, то просто пусть бот в этот url добавляет параметры. Если flet даже не умеет параметры из ссылки брать - то это негодное решение для написания сайта.
Да наверное никак.
Как я понимаю, miniapps передают данные в структуре initData и initUnsafeData, но там нет рандомных переменных, только внутренние userID, userName и так далее.
Сохраняйте внутреннюю переменную вместе с user_id в базе данных, и когда юзер переходит в веб приложение, то доставайте его из базы по user ID