در قسمتهای قبل با ربات تلگرام آشنا شدیم و یاد گرفتیم که چگونه به درخواستهای کاربران پاسخ مناسب بدهیم. در این قسمت یعنی قسمت چهارم برنامه نویسی با php برای ربات تلگرام با ارسال عکس، صوت، فیلم، مستندات، استیکر، موقعیت مکانی، کارت دعوت، اطلاعات تماس و وضعیت فعالیت بات آشنا میشویم.
برای ارسال عکس با ربات تلگرام از متد sendPhoto استفاده میکنیم. متد sendPhoto تصویر را با استفاده از POST برای کاربر ارسال میکند. در مثال زیر با CURL کار ارسال را انجام میدهیم:
$url= "https://api.telegram.org/bot".$token."/sendPhoto?chat_id=".$chat_id;
$post = array(
'photo' => new CURLFile(realpath("dedsec.jpg"))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);
دستورات بالا عکس موجود در ریشه جاری با نام dedsec.jpg را به کاربر ارسال میکند.
می توان زیر تصاویر متنی برای توضیح ارسال کرد. برای ارسال این مقدار از پارامتر caption به شکل زیر استفاده میکنیم:
$url= "https://api.telegram.org/bot".$token."/sendPhoto?chat_id=".$chat_id."&caption=متن کپشن";
ارسال صوت در تلگرام شبیه ارسال تصویر است. در زیر مثالی از استفاده از این متد مشاهده میکنید:
$url= "https://api.telegram.org/bot".$token."/sendAudio?chat_id=".$chat_id;
$post = array(
'audio' => new CURLFile(realpath("dedsec.mp3"))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);
در بالا مانند sendPhoto فایل صوتی خود را با curl و متد پست ارسال میکنیم.
متد sendAudio پارامترهای اختیاری زیر را دارد:
نکته: محدودیت حجمی ارسال فایلهای صوتی با بات تلگرام 50 مگابایت است.
بهترین حالت ارسال فیلم برای بات تلگرام ارسال فیلم با فرمت mp4 است. هر چند که فرمتهای دیگر نیز ممکن است ارسال شوند. اگر از فرمت خاصی استفاده کنید که تلگرام امکان ارسال آن به عنوان video را نداشته باشد خود تلگرام آن را به عنوان document ارسال میکند:
$url= "https://api.telegram.org/bot".$token."/sendVideo?chat_id=".$chat_id;
$post = array(
'video' => new CURLFile(realpath("dedsec.mp4"))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);
مثالی از ارسال مستندات با بات تلگرام را در زیر میبینید:
$url= "https://api.telegram.org/bot".$token."/sendDocument?chat_id=".$chat_id;
برای متد sendDocument نیز میتوان caption ارسال کرد.
نکته: محدودیت حجمی ارسال مستندات با بات تلگرام 50 مگابایت است.
فرمت پیشنهادی تلگرام برای ارسال استیکر فرمت webp است. اگر تصاویر خود را با این فرمت به عنوان استیکر ارسال کنید خروجی کار بهتر خواهد بود، هر چند میتوان عکسهایی با فرمتهای دیگر را نیز ارسال کرد.
اگر تصویری با فرمتهای رایج دارید و میخواهید به webp تبدیل کنید از این سایت استفاده کنید.
$url= "https://api.telegram.org/bot".$token."/sendSticker?chat_id=".$chat_id;
$post = array(
'sticker' => new CURLFile(realpath("dedsec.webp"))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);
در این متد با داشتن طول و عرض موقعیت جغرافیایی یک عکس و لینک از آدرس محل مورد نظر برای کاربر ارسال میشود:
$url= "https://api.telegram.org/bot".$token."/sendLocation?chat_id=".$chat_id."&latitude=37.7576793&longitude=-122.5076402";
file_get_contents($url);
این متد بسیار شبیه 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);
متد فوق بسیار ساده است، شماره، نام و نام خانوادگی مشترک را دریافت و مشخصات تماس را برای کاربر ارسال میکند:
$url= "https://api.telegram.org/bot".$token."/sendContact?chat_id=".$chat_id."&phone_number=09122222222&first_name=dedsec-hack.blog&last_name=.ir";
file_get_contents($url);
متد فوق کارکرد جالبی دارد، فرض کنید قرار است با بات برای کاربر ویدیو حجیمی بفرستید مدت زمانی که کاربر صبر میکند تا ویدیو به دستش برسد جالب است که متن 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("dedsec.mp4"))
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_exec($ch);
dedsec will give you the truth
join us
برنامه نویسی ربات تلگرام: قسمت چهارم
برنامه نویسی ربات تلگرام: قسمت سوم
برنامه نویسی ربات تلگرام: قسمت اول
url ,curl ,chat ,id ,تلگرام ,ch ,chat id ,بات تلگرام ,bot token ,org bot ,id chat ,curlfile realpath dedsec ,کاربر ارسال میکند ,برای کاربر ارسال ,post array video
درباره این سایت