در قسمت‌های قبل با ربات تلگرام آشنا شدیم و یاد گرفتیم که چگونه به درخواست‌های کاربران پاسخ مناسب بدهیم. در این قسمت یعنی قسمت چهارم برنامه نویسی با php برای ربات تلگرام با ارسال عکس، صوت، فیلم، مستندات، استیکر، موقعیت مکانی، کارت دعوت، اطلاعات تماس و وضعیت فعالیت بات آشنا می‌شویم.

برنامه نویسی ربات تلگرام بدون نیاز به https

ارسال تصاویر برای بات تلگرام با متد sendPhoto:

برای ارسال عکس با ربات تلگرام از متد sendPhoto استفاده می‌کنیم. متد sendPhoto تصویر را با استفاده از POST برای کاربر ارسال می‌کند. در مثال زیر با CURL کار ارسال را انجام می‌دهیم:

$url= "https://api.telegram.org/bot".$token."/sendPhoto?chat_id=".$chat_id;
$post = array(
    'photo'     => new CURLFile(realpath("hitos.jpg"))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);

دستورات بالا عکس موجود در ریشه جاری با نام hitos.jpg را به کاربر ارسال می‌کند.

می توان زیر تصاویر متنی برای توضیح ارسال کرد. برای ارسال این مقدار از پارامتر caption به شکل زیر استفاده می‌کنیم:

$url= "https://api.telegram.org/bot".$token."/sendPhoto?chat_id=".$chat_id."&caption=متن کپشن";

ارسال تصاویر برای بات تلگرام با متد sendAudio:

ارسال صوت در تلگرام شبیه ارسال تصویر است. در زیر مثالی از استفاده از این متد مشاهده می‌کنید:

$url= "https://api.telegram.org/bot".$token."/sendAudio?chat_id=".$chat_id;
$post = array(
    'audio'     => new CURLFile(realpath("hitos.mp3"))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);

در بالا مانند sendPhoto فایل صوتی خود را با curl و متد پست ارسال می‌کنیم.

متد sendAudio پارامتر‌های اختیاری زیر را دارد:

  • caption: متن توضیح زیر فایل صوتی را تعیین می‌کند.
  • duration: طول مدت Track صوتی را به ثانیه دریافت می‌کند.
  • performer: نام اجرا کننده Track صوتی (مثلا نام خواننده)
  • title: نام Track صوتی

نکته: محدودیت حجمی ارسال فایل‌های صوتی با بات تلگرام 50 مگابایت است.

ارسال فیلم برای بات تلگرام با متد sendVideo:

بهترین حالت ارسال فیلم برای بات تلگرام ارسال فیلم با فرمت mp4 است. هر چند که فرمت‌های دیگر نیز ممکن است ارسال شوند. اگر از فرمت خاصی استفاده کنید که تلگرام امکان ارسال آن به عنوان video را نداشته باشد خود تلگرام آن را به عنوان document ارسال می‌کند:

$url= "https://api.telegram.org/bot".$token."/sendVideo?chat_id=".$chat_id;
$post = array(
        'video'     => new CURLFile(realpath("hitos.mp4"))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);

ارسال مستندات برای بات تلگرام با متد sendDocument:

مثالی از ارسال مستندات با بات تلگرام را در زیر می‌بینید:

$url= "https://api.telegram.org/bot".$token."/sendDocument?chat_id=".$chat_id;

برای متد sendDocument نیز می‌توان caption ارسال کرد.

نکته: محدودیت حجمی ارسال مستندات با بات تلگرام 50 مگابایت است.

ارسال استیکر برای بات تلگرام با متد sendSticker:

فرمت پیشنهادی تلگرام برای ارسال استیکر فرمت webp است. اگر تصاویر خود را با این فرمت به عنوان استیکر ارسال کنید خروجی کار بهتر خواهد بود، هر چند می‌توان عکس‌هایی با فرمت‌های دیگر را نیز ارسال کرد.

اگر تصویری با فرمت‌های رایج دارید و می‌خواهید به webp تبدیل کنید از این سایت استفاده کنید.

$url= "https://api.telegram.org/bot".$token."/sendSticker?chat_id=".$chat_id;
$post = array(
        'sticker'     => new CURLFile(realpath("hitos.webp"))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);

ارسال موقعیت برای بات تلگرام با متد sendLocation:

در این متد با داشتن طول و عرض موقعیت جغرافیایی یک عکس و لینک از آدرس محل مورد نظر برای کاربر ارسال می‌شود:

$url= "https://api.telegram.org/bot".$token."/sendLocation?chat_id=".$chat_id."&latitude=37.7576793&longitude=-122.5076402";
file_get_contents($url);

ارسال کارت دعوت برای بات تلگرام با متد sendVenue:

این متد بسیار شبیه sendLocation است با این تفاوت که عنوان و آدرس نیز می‌توان به آن اضافه کرد:

$url= "https://api.telegram.org/bot".$token."/sendVenue?chat_id=".$chat_id."&latitude=37.7576793&longitude=-122.5076402&title=عنوان&address=آدرس";
file_get_contents($url);

ارسال مشخصات تماس برای بات تلگرام با متد sendContact:

متد فوق بسیار ساده است، شماره، نام و نام خانوادگی مشترک را دریافت و مشخصات تماس را برای کاربر ارسال می‌کند:

$url= "https://api.telegram.org/bot".$token."/sendContact?chat_id=".$chat_id."&phone_number=09122222222&first_name=hitos&last_name=.ir";
file_get_contents($url);

ارسال وضعیت عملکرد بات برای بات تلگرام با متد sendChatAction:

متد فوق کارکرد جالبی دارد، فرض کنید قرار است با بات برای کاربر ویدیو حجیمی بفرستید مدت زمانی که کاربر صبر می‌کند تا ویدیو به دستش برسد جالب است که متن sending a video"" برای کاربر نمایش داده شود و پس از آن کلیپ ویدیو به نمایش درآید:

$url= "https://api.telegram.org/bot".$token."/sendChatAction?chat_id=".$chat_id."&action=upload_video";
file_get_contents($url);

$url= "https://api.telegram.org/bot".$token."/sendVideo?chat_id=".$chat_id;
$post = array(
'video'     => new CURLFile(realpath("hitos.mp4"))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);
تگ ها: messenger / پیام رسانربات تلگرام / Telegram Botتلگرام