عملیات
پرسشهای رایج
پاسخ کوتاه به سوالهای پرتکرار هنگام ساخت برنامه با یونیوم.
token یونیوم چیست؟
در مسیرهای Bot API، مقدار <token> همان کلید API است که در پنل یا مسیر /api_keys میسازید. این کلید به یک credential متصل است و باید مثل secret نگهداری شود.
آیا میتوانم از SDK تلگرام استفاده کنم؟
اگر SDK اجازه تنظیم base URL بدهد، معمولاً بله. base URL را روی https://api.uniom.ir/bot بگذارید و token را برابر <API_KEY> قرار دهید. اگر SDK مسیرها را hard-code کرده باشد، از HTTP client مستقیم استفاده کنید.
برای دریافت پیام webhook بهتر است یا getUpdates؟
برای تست و ابزارهای کوچک، getUpdates سادهتر است. برای production، webhook معمولاً بهتر است چون تحویل سریعتر و کنترل بهتری روی endpoint خودتان میدهد. برای یک کلید API، این دو روش را همزمان فعال نکنید.
چرا update تکراری میگیرم؟
در polling، معمولاً offset درست جلو نرفته یا چند worker همزمان با یک token کار میکنند. در webhook، اگر endpoint شما پاسخ 2xx ندهد، تحویل دوباره تلاش میشود. وضعیت را با getWebhookInfo و لاگهای webhook بررسی کنید.
chat_id را از کجا بیاورم؟
برای شروع میتوانید از username، شماره تلفن مجاز یا شناسهای که از updateها و پاسخهای API گرفتهاید استفاده کنید. برای production، بعد از resolve اولیه، شناسه برگشتی از API را ذخیره کنید و به همان تکیه کنید.
آیا همه متدها روی همه پلتفرمها یکسان کار میکنند؟
قالب API واحد است، اما قابلیت واقعی به پلتفرم مقصد و حساب متصلشده وابسته است. ارسال متن معمولاً سادهترین مسیر است؛ متدهایی مثل ویرایش رسانه، مدیریت گروه یا بعضی قالببندیها را روی پلتفرم هدف تست کنید.
کلید API را کجا نگه دارم؟
کلید را در backend، secret manager یا متغیر محیطی نگه دارید. آن را در frontend، اپ موبایل یا repository عمومی قرار ندهید. برای test و production کلید جدا بسازید و scope را محدود نگه دارید.
برای هر حساب چند کلید بسازم؟
اگر چند سرویس یا محیط دارید، بهتر است کلید جدا بسازید. این کار revoke، محدودسازی scope، بررسی لاگ و تفکیک مصرف را سادهتر میکند.
فایل را چطور بفرستم یا دریافت کنم؟
برای upload از multipart استفاده کنید، مثل sendPhoto یا sendDocument. برای دریافت، ابتدا getFile را بزنید و اگر file_path گرفتید، فایل را از مسیر /file/bot<API_KEY>/<file_path> دانلود کنید.
اولین قدم عیبیابی چیست؟
با همان کلید API متد getMe را بزنید. اگر موفق بود، مقصد، scope کلید، وضعیت credential و سپس لاگهای /user/logs/* یا getWebhookInfo را بررسی کنید.