Deep linking aiogram
У меня есть код:
from aiogram import types
@dp.message_handler(commands=["ref"])
async def get_ref(message: types.Message):
link = await get_start_link(str(message.from_user.username), encode=True)
await message.answer(f"Ваша реф. ссылка {link}")
@dp.message_handler(commands=["start"])
async def handler(message: types.Message):
args = message.get_args()
reference = decode_payload(args)
await message.answer(f"Ваш реферал {reference}")
Он работает, но я хочу что бы и создателю ссылки писало "Кто то перешёл пи вашей ссылке". Как это сделать?
Ответы (1 шт):
Автор решения: QWERTYZ PB
→ Ссылка
- Наверняка у тебя есть файл config.py. Если нет, то рекомендую создать.
- Помести туда переменную bot = Bot(token="TOKEN")
- Так же можно создать отдельный файл (пускай это будет bot_comm.py), который будет отвечать за отправку сообщения и написать там такую функцию:
from config import bot
async def send_message_to_user(message, user_id):
await bot.send_message(chat_id=user_id, text=message)
- Советую делать Deep link не с message.from_user.username, а message.from_user.id
- Тогда при распаковке decode_payload() мы получим id человека, которому сможем отправить сообщение.
Тогда ваш код будет выглядеть так:
from bot_comm import send_message_to_user
from aiogram import types
@dp.message_handler(commands=["ref"])
async def get_ref(message: types.Message):
link = await get_start_link(str(message.from_user.id), encode=True)
await message.answer(f"Ваша реф. ссылка {link}")
@dp.message_handler(commands=["start"])
async def handler(message: types.Message):
args = message.get_args()
id_from_referencer = decode_payload(args)
await send_message_to_user(f"{message.from_user.username} перешел по вашей ссылке!", id_from_referencer)
P.s. Писал по памяти, если будут вопросы - пиши