mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-16 20:23:32 +00:00
Added page for deep linking util
This commit is contained in:
parent
94939660c7
commit
fc9e2b82c6
2 changed files with 60 additions and 46 deletions
|
|
@ -1,49 +1,3 @@
|
||||||
"""
|
|
||||||
Deep linking
|
|
||||||
|
|
||||||
Telegram bots have a deep linking mechanism, that allows for passing
|
|
||||||
additional parameters to the bot on startup. It could be a command that
|
|
||||||
launches the bot — or an auth token to connect the user's Telegram
|
|
||||||
account to their account on some external service.
|
|
||||||
|
|
||||||
You can read detailed description in the source:
|
|
||||||
https://core.telegram.org/bots#deep-linking
|
|
||||||
|
|
||||||
We have added some utils to get deep links more handy.
|
|
||||||
|
|
||||||
Basic link example:
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
from aiogram.utils.deep_linking import create_start_link
|
|
||||||
|
|
||||||
link = await create_start_link(bot, 'foo')
|
|
||||||
|
|
||||||
# result: 'https://t.me/MyBot?start=foo'
|
|
||||||
|
|
||||||
Encoded link example:
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
from aiogram.utils.deep_linking import create_start_link
|
|
||||||
|
|
||||||
link = await create_start_link(bot, 'foo', encode=True)
|
|
||||||
# result: 'https://t.me/MyBot?start=Zm9v'
|
|
||||||
|
|
||||||
Decode it back example:
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
from aiogram.utils.deep_linking import decode_payload
|
|
||||||
from aiogram.filters import CommandStart, CommandObject
|
|
||||||
from aiogram.types import Message
|
|
||||||
|
|
||||||
@router.message(CommandStart(deep_link=True))
|
|
||||||
async def handler(message: Message, command: CommandObject):
|
|
||||||
args = command.args
|
|
||||||
payload = decode_payload(args)
|
|
||||||
await message.answer(f"Your payload: {payload}")
|
|
||||||
|
|
||||||
"""
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
|
|
|
||||||
60
docs/utils/deep_linking.rst
Normal file
60
docs/utils/deep_linking.rst
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
============
|
||||||
|
Deep Linking
|
||||||
|
============
|
||||||
|
|
||||||
|
Telegram bots have a deep linking mechanism, that allows for passing
|
||||||
|
additional parameters to the bot on startup. It could be a command that
|
||||||
|
launches the bot — or an auth token to connect the user's Telegram
|
||||||
|
account to their account on some external service.
|
||||||
|
|
||||||
|
You can read detailed description in the source:
|
||||||
|
https://core.telegram.org/bots#deep-linking
|
||||||
|
|
||||||
|
We have added some utils to get deep links more handy.
|
||||||
|
|
||||||
|
Examples
|
||||||
|
========
|
||||||
|
|
||||||
|
Basic link example
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from aiogram.utils.deep_linking import create_start_link
|
||||||
|
|
||||||
|
link = await create_start_link(bot, 'foo')
|
||||||
|
|
||||||
|
# result: 'https://t.me/MyBot?start=foo'
|
||||||
|
|
||||||
|
Encoded link
|
||||||
|
------------
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from aiogram.utils.deep_linking import create_start_link
|
||||||
|
|
||||||
|
link = await create_start_link(bot, 'foo', encode=True)
|
||||||
|
# result: 'https://t.me/MyBot?start=Zm9v'
|
||||||
|
|
||||||
|
Decode it back
|
||||||
|
--------------
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
from aiogram.utils.deep_linking import decode_payload
|
||||||
|
from aiogram.filters import CommandStart, CommandObject
|
||||||
|
from aiogram.types import Message
|
||||||
|
|
||||||
|
@router.message(CommandStart(deep_link=True))
|
||||||
|
async def handler(message: Message, command: CommandObject):
|
||||||
|
args = command.args
|
||||||
|
payload = decode_payload(args)
|
||||||
|
await message.answer(f"Your payload: {payload}")
|
||||||
|
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
.. autofunction:: aiogram.utils.deep_linking.create_start_link
|
||||||
|
|
||||||
|
.. autofunction:: aiogram.utils.deep_linking.decode_payload
|
||||||
Loading…
Add table
Add a link
Reference in a new issue