https://core.telegram.org/bots/webapps# ... e-mini-app
Когда клиент пытается войти в мой интерфейс мини-приложения, отправляет проверочную строку, как в статье, я генерирую хеш-строку на серверной части, чтобы проверить вход клиента с помощью этой функции
Код: Выделить всё
import json
import urllib.parse
import hmac
import hashlib
def verify_telegram_webapp_data(telegram_init_data: str, bot_token: str) -> bool:
init_data = json.loads(urllib.parse.unquote(telegram_init_data))
if "hash" not in init_data:
return False
hash_ = init_data.pop('hash')
data_to_check_parts = []
for key, value in sorted(init_data.items()):
if isinstance(value, dict):
value = json.dumps(value, separators=(',', ':'), ensure_ascii=False)
data_to_check_parts.append(f"{key}={value}")
data_to_check = "\n".join(data_to_check_parts)
secret_key = hmac.new(bot_token.encode(), 'WebAppData'.encode(), hashlib.sha256).digest()
computed_hash = hmac.new(data_to_check.encode(), secret_key, hashlib.sha256).hexdigest()
print('Data to check:', data_to_check)
print('Computed hash:', computed_hash)
print('Provided hash:', hash_)
return computed_hash == hash_
Пробовал менять photo_url, удалять, но результат тот же...
Подробнее здесь: https://stackoverflow.com/questions/791 ... s-not-work
Мобильная версия