دریافت اطلاعات از ربات تلگرام توسط وب هوک و php
اگر در ربات تلگرامی شما اتفاقی بیافتد مثلا یک پست ارسال شود یا دستوری مانند start زده شود ، گاهی نیاز است به سرور ما ارسال شود تا عملیات خاصی روی آن انجام دهیم و پاسخی ارسال کنیم.
بهترین روش دریافت اطلاعات از ربات تلگرام استفاده از وب هوک می باشد که تگرام بلافاصله بعد از ارسال توسط کاربر یک نسخه کامل حاوی اطلاعات مورد نیاز به آدرس درخواستی ما میفرستد.
در ابتدا نیاز است آدرس را به تلگرام معرفی کنیم.
توجه کنید باید https روی آدرس یا دامنه فعال باشد.
آدرس زیر را ببینید:
https://api.telegram.org/bot418901969:AAHu5FfbN0W5tqBNdf0L98E2SC25jbNYWHs/setWebhook?url=https://zhupin.ir/webhook.php
در آدرس بالا بعد از bot باید توکن ربات خود را قرار دهید و به جای
https://zhupin.ir/webhook.php باید آدرس خود را قرار دهید که قرار است اطلاعات به آن ارسال شود. ممکن است هر آدرسی که شما علاقه دارید باشد.
سپس این آدرس را در مرورگر اجرا میکنیم تا پیام موفقیت آمیز بگیریم.
حالا در آدرسی که برای وب هوک تعریف کردید ، که ما در این مثال
https://zhupin.ir/webhook.php را انتخاب کردیم ، یعنی در فایل webhook.php کد های زیر را قرار میدهیم تا یک تست بگیریم.
<?php
$res = file_get_contents("php://input");
file_put_contents(__DIR__.'/TELEGRAM.txt',$res);
?>
در کد بالا ما میخواهیم درخواست هایی که تلگرام میفرستد را در فایلی ذخیره کنیم تا ببینیم چه چیزی ارسال شده است.
پس از ذخیره کردن این کد ها در ربات خود یک متن بفرستید یا استارت کنید و پس از ۵ تا ۳۰ ثانیه در هاست خود دقیقا کنار همان فایل آدرس (مثلا https://zhupin.ir/webhook.php) که در مثال ما webhook.php بود یک فایل با نام TELEGRAM.txt ایجاد شده است که اگر آن را باز کنید خواهید دید یک JSON ارسال شده است که به راحتی میتوانید مقادیر مورد نیاز را بیرون بکشید.
در مثال زیر مواردی را نشان دادیم. برای موارد بیستر به همان فایل لاگ رجوع کنید تا بتوانید متغیر ها را پیدا کنید.
<?php
$res = file_get_contents("php://input");
$res = json_decode($res);
$res->message->chat->username; ///////نام کاربری ارسال کننده متن///
$res->message->chat->id; ///////آی دی چت که میتوان از طریق آن متنی را برای کاربر ارسال کد///
$res->message->text ; ////////متن////
?>