یوز برای توسعه‌دهندگان

بات‌های خودتان را برای یوز بسازید

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

۱. شروع سریع

  1. در برنامه یوز گفتگو با @botfather («مدیریت بات‌ها») را باز کنید و دستور /newbot را بفرستید.
  2. نام و نام کاربری بات را بدهید (نام کاربری باید به bot ختم شود).
  3. توکن بات را بگیرید؛ چیزی شبیه 123456:AbCdEf…. توکن را محرمانه نگه دارید.
  4. یکی از کتابخانه‌ها را دانلود کنید و نمونه را اجرا کنید:
curl -O https://developer.yooz-app.ir/sdk/yooz_bot.py
curl -O https://developer.yooz-app.ir/examples/echo_bot.py
YOOZ_BOT_TOKEN='123456:AbCdEf...' python3 echo_bot.py

۲. Bot API

هر درخواست یک فراخوانی HTTPS است:

https://yooz-app.ir/bot<TOKEN>/<METHOD>
curl https://yooz-app.ir/bot123456:AbCdEf/getMe

curl -X POST https://yooz-app.ir/bot123456:AbCdEf/sendMessage \
  -H 'Content-Type: application/json' \
  -d '{"chat_id": 42, "text": "سلام <b>دنیا</b>", "parse_mode": "HTML"}'

دریافت پیام‌ها

Long polling: getUpdates با offset و timeout (تا ۵۰ ثانیه). Webhook: با setWebhook یک آدرس HTTPS عمومی بدهید؛ اگر secret_token بدهید، در سرآیند X-Telegram-Bot-Api-Secret-Token برمی‌گردد. هر دو روش هم‌زمان کار نمی‌کنند.

نوع به‌روزرسانی‌ها: message، edited_message، channel_post، edited_channel_post و callback_query.

قالب‌بندی متن

parse_mode می‌تواند HTML، Markdown یا MarkdownV2 باشد، یا entities را مستقیم بفرستید. تگ‌های HTML: <b> <i> <u> <s> <code> <pre> <a href> <tg-spoiler> <blockquote>.

دکمه‌های شیشه‌ای

"reply_markup": {"inline_keyboard": [[
  {"text": "👍", "callback_data": "like"},
  {"text": "سایت یوز", "url": "https://yooz-app.ir"}
]]}

بعد از زدن دکمه، callback_query می‌رسد؛ با answerCallbackQuery جواب بدهید (حداکثر ۶۴ بایت داده برای هر دکمه، حداکثر ۱۰۰ دکمه).

۳. متدها

دستهمتدها
باتgetMe · logOut · close · setMyCommands · getMyCommands · deleteMyCommands · setMyName · getMyName · setMyDescription · getMyDescription · setMyShortDescription · getMyShortDescription
به‌روزرسانی‌هاgetUpdates · setWebhook · deleteWebhook · getWebhookInfo
ارسالsendMessage · sendPhoto · sendVideo · sendAnimation · sendVoice · sendAudio · sendDocument · sendChatAction
ویرایش و حذفeditMessageText · editMessageCaption · editMessageReplyMarkup · deleteMessage · deleteMessages
دکمه‌هاanswerCallbackQuery
گفتگوهاgetChat · getChatMemberCount · getChatMember · leaveChat
فایل‌هاgetFile

بات فقط وقتی می‌تواند به کاربری پیام بدهد که کاربر اول گفتگو را با او شروع کرده باشد. برای فرستادن در گروه و کانال، بات باید عضو باشد و اجازهٔ ارسال داشته باشد.

۴. کتابخانه‌های رسمی

Python

پایتون ۳.۸ به بالا، فقط کتابخانهٔ استاندارد، یک فایل. پشتیبانی از polling و webhook.

yooz_bot.py
from yooz_bot import Bot

bot = Bot("123456:AbCdEf...")

@bot.command("start")
def start(msg):
    msg.reply(f"سلام {msg.sender_name}!")

bot.run_polling()

Node.js

Node 18 به بالا، بدون وابستگی، یک فایل ES module.

yooz_bot.mjs
import { Bot } from './yooz_bot.mjs';

const bot = new Bot(process.env.YOOZ_BOT_TOKEN);
bot.command('start', (msg) => msg.reply('سلام!'));
await bot.startPolling();

آدرس سرور پیش‌فرض https://yooz-app.ir است؛ با متغیر محیطی YOOZ_API عوضش کنید (مثلاً https://193.93.169.100 اگر دامنه در شبکهٔ شما باز نمی‌شود).

۵. نمونه‌ها