ابزار تست Mini App

شبیه‌سازی
ویژگی‌ها
version
—
platform
—
colorScheme
—
isActive
—
isExpanded
—
isFullscreen
—
isOrientationLocked
—
isClosingConfirmation
—
isVerticalSwipes
—
viewportHeight
—
viewportStableH
—
headerColor
—
backgroundColor
—
bottomBarColor
—
initData
initDataUnsafe
پارامترهای تم
bg_color
text_color
hint_color
link_color
button_color
button_text_color
secondary_bg_color
header_bg_color
bottom_bar_bg_color
accent_text_color
section_bg_color
section_header_text_color
section_separator_color
subtitle_text_color
destructive_text_color
WebApp 18
ready()
expand()
close()
sendData()
switchInlineQuery()
setHeaderColor()
setBackgroundColor()
setBottomBarColor()
enableClosingConfirmation()
disableClosingConfirmation()
enableVerticalSwipes()
disableVerticalSwipes()
requestFullscreen()
exitFullscreen()
lockOrientation()
unlockOrientation()
openLink()
openTelegramLink()
isVersionAtLeast()
hideKeyboard()
دکمه‌ها 4
MainButton
کلیک روی دکمه، رویداد mainButtonClicked را فعال می‌کند
SecondaryButton
BackButton
BackButton
کلیک، رویداد backButtonClicked را فعال می‌کند
SettingsButton
SettingsButton
کلیک، رویداد settingsButtonClicked را فعال می‌کند
پاپ‌آپ‌ها و هشدارها 5
showAlert()
showConfirm()
showPopup()
showScanQrPopup()
readTextFromClipboard()
بازخورد لمسی 3
impactOccurred()
notificationOccurred()
selectionChanged()
ذخیره‌سازی ابری 6
setItem()
getItem()
getKeys()
removeItem()
ذخیره‌سازی دستگاه 4
setItem()
getItem()
removeItem()
clear()
ذخیره‌سازی امن 5
setItem()
getItem()
restoreItem()
removeItem()
clear()
حسگرها 3
Accelerometer
DeviceOrientation
Gyroscope
بیومتریک 5
init()
requestAccess()
authenticate()
updateBiometricToken()
openSettings()
موقعیت مکانی 3
LocationManager.init()
LocationManager.getLocation()
LocationManager.openSettings()
فاکتور و استوری 3
openInvoice()
shareMessage()
مجوزها و احراز هویت 3
requestWriteAccess()
requestContact()
requestChat()
ایموجی، صفحه، فایل 5
Home Screen
addToHomeScreen()
checkHomeScreenStatus()
Emoji Status
File Download
گزارش رویدادها 0
در حال گوش دادن به 45 رویداد
رویدادی وجود ندارد. برای ایجاد رویداد از متدهای بالا استفاده کنید.

Mini App Tester ابزاری رایگان برای تست مینی اپ تلگرام بدون نوشتن کد است و JavaScript API مربوط به Telegram.WebApp را پوشش می‌دهد. در مرورگر معمولی در حالت mock اجرا می‌شود و API را شبیه‌سازی می‌کند؛ اگر داخل تلگرام باز شود، با API واقعی همان کلاینت کار می‌کند. اگر در حال ساخت مینی اپ تلگرام هستید، هر قابلیت را قبل از پیاده‌سازی اینجا امتحان کنید یا رفتار یک کلاینت خاص را ببینید.

روش تست مینی اپ تلگرام

  1. این صفحه را در هر مرورگری باز کنید؛ حالت mock خودکار فعال می‌شود و Telegram.WebApp را شبیه‌سازی می‌کند.
  2. یکی از 13 گروه متد را باز کنید، متدها را اجرا کنید و نتیجه را در گزارش رویدادها و پنل زنده ویژگی‌ها دنبال کنید.
  3. برای تست داخل تلگرام، آدرس https://telegram-bot-api.info/telegram-mini-app-tester.html را در @BotFather به‌عنوان URL مینی اپ ربات خود ثبت کنید (/newapp یا تنظیمات دکمه منو). به هاست نیازی نیست.
  4. تستر را روی iOS، Android و دسکتاپ باز کنید و مقادیر version، platform، colorScheme، initData، themeParams و safe areaها را مقایسه کنید. داخل تلگرام، رابط ابزار به زبان کاربر نمایش داده می‌شود.

چه چیزهایی را می‌توان تست کرد

گزارش رویدادها بیش از 45 رویداد را با زمان دقیق ثبت می‌کند، مثل themeChanged، viewportChanged، mainButtonClicked و fullscreenChanged؛ پس دقیقاً می‌بینید هندلرهای شما چه چیزی دریافت می‌کنند.

تست Telegram Web App: حالت mock یا تلگرام واقعی

Mini Appها در ابتدا Web App نام داشتند؛ به همین دلیل شیء API هنوز Telegram.WebApp است. حالت mock برای بررسی رابط کاربری و روند کار مناسب است: نشان می‌دهد چه متدهایی وجود دارند، چه برمی‌گردانند و کدام رویدادها رخ می‌دهند، و ذخیره‌سازی را در localStorage شبیه‌سازی می‌کند. اما پاپ‌آپ‌های نیتیو، لرزش یا داده واقعی کاربر را بازسازی نمی‌کند و initData آن نمونه‌ای است که تلگرام امضا نکرده است. داخل تلگرام، تستر به API واقعی سوئیچ می‌کند؛ پس initData واقعی است، هر فراخوانی به کلاینت واقعی می‌رسد و می‌توانید اعتبارسنجی داده‌ها را در سرور خود تست کنید.

حریم خصوصی

تستر کاملاً در مرورگر شما اجرا می‌شود، به توکن ربات نیازی ندارد و Bot API را فراخوانی نمی‌کند. داده‌های ذخیره‌سازی شبیه‌سازی‌شده فقط در localStorage مرورگر شما می‌ماند.

برای ساخت مینی اپ تلگرام ابتدا به یک ربات نیاز دارید: از راهنمای ساخت ربات تلگرام شروع کنید و توکن آن را بگیرید. برای اتصال دکمه منو به مینی اپ از طریق API، متد setChatMenuButton را در Bot API Tester اجرا کنید. ارسال پیام با کیبورد اینلاین در راهنمای ارسال پیام آمده است؛ دکمه web_app در چت خصوصی، مینی اپ را باز می‌کند. هر متد را هم می‌توانید در Swagger یا مرجع متدها ببینید.

پرسش‌های متداول

چطور مینی اپ تلگرام را آنلاین و بدون تلگرام تست کنم؟

Mini App Tester را در هر مرورگری باز کنید. حالت mock آن Telegram.WebApp را شبیه‌سازی می‌کند، پس بدون ربات و کلاینت تلگرام می‌توانید متدها را صدا بزنید، رویداد ایجاد کنید و ویژگی‌ها را بررسی کنید.

آیا می‌توانم Mini App Tester را به‌عنوان مینی اپ ربات خودم استفاده کنم؟

بله. آدرس https://telegram-bot-api.info/telegram-mini-app-tester.html را در @BotFather از طریق /newapp یا تنظیمات دکمه منو به‌عنوان URL مینی اپ ثبت کنید. داخل تلگرام از API واقعی WebApp استفاده می‌شود و به هیچ هاستی نیاز ندارید.

کدام قابلیت‌های Telegram WebApp API پوشش داده شده‌اند؟

متدهای اصلی WebApp، دکمه‌های MainButton، SecondaryButton، BackButton و SettingsButton، پاپ‌آپ‌ها، HapticFeedback، CloudStorage، DeviceStorage، SecureStorage، حسگرها، بیومتریک، موقعیت مکانی، مجوزها، فاکتور و استوری، وضعیت ایموجی، تمام‌صفحه و دانلود فایل، به‌علاوه گزارش بیش از 45 رویداد.

آیا initData در حالت mock معتبر است؟

خیر. حالت mock از داده نمونه‌ای استفاده می‌کند که تلگرام آن را امضا نکرده است، پس عمداً در اعتبارسنجی HMAC رد می‌شود. برای تست اعتبارسنجی سمت سرور، تستر را داخل تلگرام باز کنید تا initData واقعی بگیرید.

آیا برای استفاده از Mini App Tester به توکن ربات نیاز دارم؟

خیر. این صفحه اصلاً Bot API را فراخوانی نمی‌کند. فقط اگر بخواهید تستر را داخل تلگرام به‌عنوان مینی اپ باز کنید، به یک ربات نیاز دارید.

برای ساخت مینی اپ تلگرام از کجا شروع کنم؟

یک ربات در @BotFather بسازید، صفحه وب خود را روی HTTPS منتشر کنید، اسکریپت https://telegram.org/js/telegram-web-app.js را به آن اضافه کنید و آدرس صفحه را با /newapp یا تنظیمات دکمه منو به ربات وصل کنید. متدهای موردنیاز Telegram.WebApp را می‌توانید از قبل در همین تستر امتحان کنید.