معرفی متدهای Api ربات تلگرام

علی حسین شهابی

1395/8/24

نظر0

با سلام خدمت شما دوستان

در ادامه ی مبحث آموزش ساخت ربات تلگرام (Telegram) , در این جلسه به معرفی متد های API تلگرام می پردازیم

در ابتدا بگویم که تمام متد ها و توضیحات را می توانید در سایت رسمی تلگرام مشاهده نمایید و منم سعی میکنم تا جای ممکن آنها را پوشش دهم .

برای استفاده از متدهای تلگرام (Telegram) حتما نیاز به اس اس ال و HTTPS دارین .

اگر با روش ثبت ربات و گرفتن توکن آشنا نیستین حتما این آموزش (آموزش کامل ساخت ربات تلگرام) را مطالعه نمایید .

همه درخواست ها و متدهایی که استفاده می کنید به صورت زیر می باشد  :‌

https://api.telegram.org/bot/METHOD_NAME

  • token :‌توکنی هست که موقع ساخت بات از BotFather دریافت کردین .
  • METHOD_NAME :‌نام متدی که قصد استفاده از آن را دارین

تمام متدهای بات تلگرام (Telegram) به حروف کوچک و بزرگ حساسیت ندارند  (case-insensitive) و دو نوع GET و POST را پشتیبانی می کنند  و شما می توانید برای ارسال پارامترها به ربات تلگرام از روش های زیر استفاده کنید :‌

  • URL query string
  • application/json
  • application/x-www-form-urlencoded
  • multipart/form-data

اگر به درستی ارسال را انجام داده باشید  یه آبجکت شامل که شامل اطلاعات مفیدی است برای شما بازگشت داده می شود .

خب بریم سراغ معرفی متد های تلگرام  :

متد getMe

اولین متد و ساده ترین متد تلگرام (Telegram) است که هیچ پارامتری نیاز ندارد و اطلاعاتی درباره بات شما در قالب یک آبجکت (object) برگشت داده می شود .

برای ارسال درخواست می توانیم به این صورت عمل کنید :‌

https://api.telegram.org/bot136681112:AAGP_1qsss7muQTcQ54On8GfEwLdISrDRME/getMe

و یا با استفاده از php :‌

$url='https://api.telegram.org/bot136681112:AAGP_1qsss7muQTcQ54On8GfEwLdISrDRME/getMe';
	die(file_get_contents($url));

خروجی مانند زیر است :‌

{
	"ok": true,
	"result": {
	"id": 136682222,
	"first_name": "ربات تست",
	"username": "alihossein_bot"
	}
}

همچنین می توانید از curl برای ارسال درخواست و گرفتن خروجی استفاده نمایید :

خروجی کد بالا یوزرنیم بات شما می باشد. (یادتون باشه توکن را با توکن خودتون عوض نماید   )

 

متد sendMessage

از این متد برای ارسال پیغام استفاده می شود و در صورت موفقیت آمیز بودن , پیغام ارسال شده برگشت داده می شود .

پارامترها :

  • chat_id :‌ آیدی منحصر به فرد یک کاربر یا کانال یا گروه که می توانید به جای آیدی از یوزرنیم به صورت channelusername@ استفاده کنید.
  • text : متن پیامی که می خواهید ارسال کنید .
  • parse_mode :‌اگر بخواهید متن هاتون رو به صورت bold, italic, fixed-width text or inline URLs یا به صورت Markdown ارسال کنید باید از این پارامتر  استفاده کنید . اگر مقدار این پارامتر را html بگذارید می توانید متن html بفرستید و اگر Markdown بگذارید می توانید متن اتان را به صورت مارک دان ارسال کنید .
  • disable_notification :‌ اگر با false مقدار دهی شود پیام را بدون نمایش notification برای کاربر ارسال می کند
  • reply_to_message_id :‌اگر می خواهید متنی که ارسال می کنید در جواب یک message دیگر باشد , آیدی آن را با استفاده از این پارامتر مشخص می کنید .
  • reply_markup : این پارامتر برای اضافه کردن کیبورد دلخواه به ربات می باشد که کاربر با استفاده از این کیبورد و کلیدهای که ما ایجاد کردیم قادر به ارتباط به ربات باشد  .
<?php
$token='توکن مورد نظر شما';
$chatId='آی دی کاربر یا گروه یا کانال مورد نظر';
$text='متن پیغام مورد نظر';
$sendResponseUrl = 'https://api.telegram.org/bot'.$token . '/sendMessage?parse_mode=HTML&chat_id='.$chatId.'&text='.$text.'';


file_get_contents($sendResponseUrl);

در مثال بالا  متد را sendMessage مشخص کردیم  . token را در متغیر token ریخته . آیدی را در متغیر chatId ریخته .متن امان را داخل متغیر text ریخته . با استفاده از این پارامتر ها url امان را می سازیم و در نهایت با استفاده از تابع file_get_contents درخواست را اجرا می کنیم.

 

اگر خواستیم به جای متن html متن های مارک دان ارسال کنیم باید مقدار پارامتر parse_mode را Markdown قرار دهیم

 

متد forwardMessage

با استفاده از این متد می توانید یک متن برای برای فردی دیگر forward نمایید  .

  • chat_id :‌آیدی شخص یا گروهی که می خواهین پیغام برای آن forward شود .به جای آیدی از یوزرنیم به صورت channelusername@ استفاده کنید.
  • from_chat_id :‌آیدی شخص یا گروهی که پیغام شما در آن قرار دارد و میخواهید آن را   forward کنید .به جای آیدی از یوزرنیم به صورت channelusername@ استفاده کنید.
  • disable_notification : اگر true باشد پیغام را به صورت Silent و بدون notification برای طرف ارسال می کند .
  • message_id :‌آیدی مسیج مورد نظر که قصد forward کردن آن را دارید
<?php
$token='توکن مورد نظر شما';
$chatId='آی دی کاربر یا گروه یا کانال مورد نظر';
$text='متن پیغام مورد نظر';
$forwardResponseUrl = 'https://api.telegram.org/bot'.$token . '/forwardMessage?chat_id='.$chatId.'&from_chat_id='.$chatId.'&message_id=800';

file_get_contents($forwardResponseUrl);

در کد بالا ما متدمان را forwardMessage قرار دادیم و chat_id و from_chat_id را یکسان قرار دادیم برای اینکه می خواستم یکی از پیغام های خودم را که آیدی آن ۸۰۰ است را برای خودم forward  کنم . شما می توانید درfrom_chat_id آیدی گروه یا شخص مورد نظر را بزنید تا پیغام برای او forward شود .

 

متد sendPhoto

با استفاده از این متد می تواند در گروه ,کانال و یا یه شخص خاصی عکس ارسال نمایید .

  • chat_id :‌آیدی شخص یا گروهی که می خواهین پیغام برای آن forward شود .به جای آیدی از یوزرنیم به صورت channelusername@ استفاده کنید.
  • photo :‌عکسی که قصد ارسال آن را دارید . اگر این عکس قبلا در سرورهای تلگرام (Telegram)ذخیره شده می توانید آیدی آن را ارسال کنید و یا آن را دوباره آپلود نمایید .
  • caption :‌ می توانید برای عکس هایی که قبلن آپلود شده وfile_id آن را دارید یک عنوان یاcaption قرار دهید . این عنوان می تواند ببین0-200 کاراکتر باشد.
  • disable_notification :‌اگر true باشد پیغام را به صورت Silent و بدون notification برای طرف ارسال می کند .
  • reply_to_message_id :‌ اگر می خواهید عکسی که ارسال می کنید در جواب یک message دیگر باشد , آیدی آن را با استفاده از این پارامتر مشخص می کنید .
  • reply_markup : این پارامتر برای اضافه کردن کیبورد دلخواه به ربات می باشد که کاربر با استفاده از این کیبورد و کلیدهای که ما ایجاد کردیم قادر به ارتباط به ربات باشد

 

متد  sendAudio

این متد برای ارسال فایل های صوتی (audio files) می باشد  . اگر می خواهید فایل ها در تلگرام کاربر پخش شود باید نوع آن Mp3‌باشد . در حال حاضر فایل صوتی می تواند تا حجم 50 MB باشد و ممکن است این محدودیت بعدن تغییر کند.

  • chat_id :‌آیدی شخص یا گروهی که می خواهین پیغام برای آن forward شود .به جای آیدی از یوزرنیم به صورت channelusername@ استفاده کنید.
  • audio :‌فایل صوتی  که قصد ارسال آن را دارید . اگر این فایل قبلا در سرورهای تلگرام ذخیره شده می توانید آیدی (file_id ) آن را ارسال کنید و یا آن را دوباره آپلود نمایید
  • duration :‌مدت زمان فایل صوتی به ثانیه
  • performer :‌سازنده
  • title :‌نام ترک
  • disable_notification :‌اگر true باشد پیغام را به صورت Silent و بدون notification برای طرف ارسال می کند .
  • reply_to_message_id :‌ اگر می خواهید فایل صوتی  که ارسال می کنید در جواب یک message دیگر باشد , آیدی آن را با استفاده از این پارامتر مشخص می کنید .
  • reply_markup : این پارامتر برای اضافه کردن کیبورد دلخواه به ربات می باشد که کاربر با استفاده از این کیبورد و کلیدهای که ما ایجاد کردیم قادر به ارتباط به ربات باشد.

 

متد sendDocument

با استفاده از این متد می توانید فایل های عمومی را ارسال کنید . تقریبا همه نوع پسوند فایلی مجاز است و حداکثر حجم آن باید ۵۰ مگابایت باشد که ممکن است بعدا تغییر کند  .

پارامترهای این متد دقیقا مانند پارامترهای قبلی است که توضیح داده شده .

 

 

متد sendSticker

از این متد می توانید برای ارسال استیکر استفاده کنید .

  • sticker :‌ استیکر مورد نظر است که می خواهید ارسال کنید . اگر این عکس قبلا در سرورهای تلگرام  (Telegram) ذخیره شده می توانید آیدی آن را ارسال کنید و یا آن را دوباره آپلود نمایید .
  • chat_id :‌آیدی شخص یا گروهی که می خواهین پیغام برای آن forward شود .به جای آیدی از یوزرنیم به صورت channelusername@ استفاده کنید.
  • disable_notification :‌اگر true باشد پیغام را به صورت Silent و بدون notification برای طرف ارسال می کند .
  • reply_to_message_id :‌ اگر می خواهید فایل صوتی که ارسال می کنید در جواب یک message دیگر باشد , آیدی آن را با استفاده از این پارامتر مشخص می کنید .
  • reply_markup : این پارامتر برای اضافه کردن کیبورد دلخواه به ربات می باشد که کاربر با استفاده از این کیبورد و کلیدهای که ما ایجاد کردیم قادر به ارتباط به ربات باشد.

متد  sendVideo

از این متد می توانید برای ارسال فایل های ویدیویی استفاده کنید .فعلا تلگرام  (Telegram)  از فایل های ویدیویی با پسوند mp4 پشتیبانی می کند و حداکثر حجم آنها می تواند ۵۰ مگابایت باشد.

  • chat_id :‌آیدی شخص یا گروهی که می خواهین پیغام برای آن forward شود .به جای آیدی از یوزرنیم به صورت channelusername@ استفاده کنید.
  • video :‌فایل ویدیویی  که قصد ارسال آن را دارید . اگر این فایل قبلا در سرورهای تلگرام ذخیره شده می توانید آیدی (file_id ) آن را ارسال کنید و یا آن را دوباره آپلود نمایید
  • duration :‌مدت زمان فایل ویدیویی به ثانیه
  • width :‌width فایل ویدیویی مورد نظر
  • height : height فایل ویدیویی مورد نظر
  • title :‌نام ترک
  • disable_notification :‌اگر true باشد پیغام را به صورت Silent و بدون notification برای طرف ارسال می کند .
  • reply_to_message_id :‌ اگر می خواهید فایل صوتی  که ارسال می کنید در جواب یک message دیگر باشد , آیدی آن را با استفاده از این پارامتر مشخص می کنید .
  • reply_markup : این پارامتر برای اضافه کردن کیبورد دلخواه به ربات می باشد که کاربر با استفاده از این کیبورد و کلیدهای که ما ایجاد کردیم قادر به ارتباط به ربات باشد.

 

متد sendVoice 

این متد هم برای ارسال فایل های صوتی (audio files )‌ می باشد . در واقع فایل هایی مد نظر هست که با گوشی ضبط شده و برای کاربر ارسال می کنیم .

توضیحات و پارامترهای این متد هم مانند متد sendAudio می باشد که بالاتر توضیح داده شده است .

 

 

متد sendLocation

از این متد برای ارسال یک نقطه روی نقشه می توانید استفاده کنید .

  • chat_id :‌آیدی شخص یا گروهی که می خواهین پیغام برای آن forward شود .به جای آیدی از یوزرنیم به صورت channelusername@ استفاده کنید.
  • latitude :‌ عرض جغرافیایی مورد نظر
  • longitude :‌طول جغرافیایی مورد نظر
  • disable_notification :‌اگر true باشد پیغام را به صورت Silent و بدون notification برای طرف ارسال می کند .
  • reply_to_message_id :‌ اگر می خواهید فایل صوتی  که ارسال می کنید در جواب یک message دیگر باشد , آیدی آن را با استفاده از این پارامتر مشخص می کنید .
  • reply_markup : این پارامتر برای اضافه کردن کیبورد دلخواه به ربات می باشد که کاربر با استفاده از این کیبورد و کلیدهای که ما ایجاد کردیم قادر به ارتباط به ربات باشد.
اینستاگرام علی حسین شهابی لینکدین علی حسین شهابی

3 نظر

( 1395/9/18 )سپیده هاشمی

سلام ایا امکانش هست قابلیتی طراحی کنیم که هر مطلبی که در سایت قرار میگیرد به صورت خودکار در کانال تلگرام ارسال شود؟ ممنون میشم اگر جواب بدهید

( 1395/9/27 )سارا ارجمند

مرسی آموزش مفیدی بود

( 1395/11/24 )سعید ترابی

سلام چه طور به یه چت آیدی برسیم که بتونیم با اون چت آیدی به یه کاربر پیام بفرستیم؟ و اگر قرار یه وب هوک تعریف کنیم چه طور می تونیم این کار بکنیم؟ ممنون از مطالب مفیدتون

ارسال نظر جدید

 
Not signed in

کلیه حقوق مادی و معنوی , متعلق به سایت (Alihossein.ir)می باشد ,انتشار مطالب بدون ذکر منبع از نظر اخلاقی و شرعی صحیح نمی باشد.