API تلگرام و تجزیه و تحلیل کد های json در php

آموزش API تلگرام و تجزیه و تحلیل کد های json در php

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

با ما همراه باشید.

 

اتصال به سرور تلگرام و دریافت اطلاعات josn از طریق API تلگرام

برای استفاده از API تلگرام و ارسال درخواست به سرور تلگرام، مراحل زیر را انجام دهید.

ابتدا یک فایل php بسازید و فانکشن زیر را برای ارسال درخواست ( Request ) ها به سرور های تلگرام قرار دهید. توجه داشته باشید که توکن خود را جایگذاری کنید. در غیر اینصورت ربات کار نخواهد کرده.

<?php

define('API_KEY',"توکن");
//******************

function bot($method,$datas=[]){
	$url = "https://api.telegram.org/bot".API_KEY."/".$method;
	$ch = curl_init();
	curl_setopt($ch,CURLOPT_URL,$url);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
	curl_setopt($ch,CURLOPT_POSTFIELDS,$datas);
	$res = curl_exec($ch);
	if(curl_error($ch)){
		var_dump(curl_error($ch));
		return "null";
	} else {
		return json_decode($res);
	}
}

?>

ساختار این فانکشن، به گونه ای است که پارامتر اول، نام متد را میگیرد. متد های تلگرام را میتوانید از این آدرس ببینید. ورودی پارامتر دوم، باید به صورت آرایه باشد. شما باید پارامتر ها را در قالب آرایه به پارامتر دوم فانکشن bot ارسال کنید. پارامتر های متد درخواستی، در سایت تلگرام و در توضیحات متد درخواستی موجود است.

برای دریافت خروجی، از متغیر $update استفاده میکنیم. شکل تعریف این متغیر را در زیر ببینید. خود تلگرام گفته است که برای گرفتن خروجی را از وب هوک در php استفاده کنید. توجه داشته باشید که جنس خروجی، از نوع آبجکت می باشد.

$update = json_decode(file_get_contents('php://input'));

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

چگونه این اطلاعات را تجزیه و تحلیل کنیم؟

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

$message = $update->message;

حال ما متغیر message یا همان پیامی که از ربات دریافت می شود را تجزیه و تحلیل کردیم و به صورت یک متغیر ارائه دادیم. توجه داشته باشید که نوشتن متغیر اجباری نیست و فقط برای آسانتر شدن کار ها از متغیر استفاده میکنیم. برای اینکه بفهمید خروجی متغیر بالا چیست، به این آدرس مراجعه کنید.

تجزیه و تحلیل طرف مقابلی که از آن پیام دریافت می شود.

برای دریافت این اطلاعات از متغیر زیر استفاده کنید (توجه داشته باشید برای دریافت این اطلاعات باید کد های بالا در فایل php باشد.)

$from_id = $message->from->id;

متغیر from_id آیدی عددی طرف مقابل را دریافت میکند.

پاسخ به طرف مقابل از طریق API تلگرام

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

if(isset($message)) {

	bot('sendmessage',[
		'chat_id' => $from_id,
		'text' => "سلام به ربات خوش آمدید."
		]
	);
	
}

 

حالا اگر پیامی از ربات دریافت شود، ربات به طرف مقابل، پیام “سلام به ربات خوش آمدید” را ارسال می کند.

توجهات لازم!

۱ – برای اجرای کد ها به یک سرور یا هاست که داخل ایران، روسیه و چین نباشد، نیاز دارید.

۲ – برای اجرای کد ها نیاز است عملیات ست وب هوک انجام شود. ( آموزش ست وب هوک )

سورس کامل پروژه API تلگرام

<?php

define('API_KEY',"توکن");

function bot($method,$datas=[]){
	$url = "https://api.telegram.org/bot".API_KEY."/".$method;
	$ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
	curl_setopt($ch,CURLOPT_POSTFIELDS,$datas);
	$res = curl_exec($ch);
	if(curl_error($ch)){
		var_dump(curl_error($ch));
		return "null";
	} else {
		return json_decode($res);
	}
}
	
/* AtsWeb */

$update = json_decode(file_get_contents('php://input'));
$message = $update->message;
$from_id = $message->from->id;

/* AtsWeb */

if(isset($message)) {

	bot('sendmessage',[
		'chat_id' => $from_id,
		'text' => "سلام به ربات خوش آمدید."
		]
	);
	
}

?>

مطالعه بیشتر