مقاله خود را جستجو کنید

در این بخش میتوانید مقاله خود به صورت حرفه ای جستجو نماید.

سورس ربات تلگرام – ارسال پیام به تمامی کاربران

 تاریخ انتشار : 25 آگوست 2017    دسته بندی : برنامه نویسی تلگرام
سورس ربات های تلگرام با سلام و عرض ادب خدمت تمامی کاربران عزیز در این آموزش قصد داریم که اطلاعات تمامی کاربران رو در دیتابیس sqlite ذخیره کنیم، تا هم آمار کاربران ربات رو داشته باشیم و هم بتوانیم به تمامی کاربران پیام ارسال کنیم . ابتدا یک ربات در تلگرام ایجاد کنید، در صورتی که نیاز به آموزش ساخت دارید به این مطلب مراجعه کنید . ۱- یک دیتابیس با فیلد های (id – user_id – name – last_name – username – date) در sqlite یا mysql ایجاد میکنیم . چون میخوایم با PDO کار کنیم مهم نیست از چه دیتابیسی استفاده میکنید .
CREATE  TABLE "main"."users" 
("id" INTEGER PRIMARY KEY  NOT NULL  UNIQUE ,
 "user_id" VARCHAR, "name" VARCHAR, "last_name" VARCHAR,
 "username" VARCHAR, "date" DATETIME DEFAULT CURRENT_TIMESTAMP)
تیبل users رو در sqlite رو ایجاد کنید . برای مدیریت sqlite بهترین گزینه افزونه فایرفاکس است .
 
try{
	$conn = new PDO("sqlite:db.sqlite");
	$conn->exec('set names utf8');
	}catch(PDOException $e){
		echo $e->getMessage();
	}
 
    try {
		$insert = $conn->prepare("INSERT INTO `users` ( `user_id`, `name`, `last_name`, `username`) VALUES (:user_id, :name , :last_name , :username)");
	    $insert->execute(array(
	    	':user_id' => '465428445',
	    	':firest_name' => 'tooba',
	    	':last_name' => 'web',
	    	':username' => '@tooba_co',
	    )); 
    } catch(PDOException $e) {
        echo $e->getMessage();                   
    }
در قدم بعد فایل sql رو به همراه index.php در هاستتون آپلود کنید و مطمئن بشید که کوئری insert به درستی کار میکنید . توضیحات کد بالا : – ابتدا میایم به sqlite متصل میشیم . – در سطر ۹ اطلاعاتی رو که ربات تلگرام برامون ارسال میکنه رو به صورت آبجکت دریافت میکنیم . توسط فانکشن objectToArray اطلاعات دریافتی رو به آرایه تبدیل میکنیم . – در سطر ۱۲ چت آیدی خودتون رو وارد کنید ( برای دریافت چت ایدی میتونید از این ربات استفاده کنید ) و در سطر ۶۸ توکن ربات رو وارد کنید . – فانکشن sendMessage برای ارسال پیام به کاربر می باشد .
<?php
try{
	$conn = new PDO("sqlite:db.sqlite");
	$conn->exec('set names utf8');
	}catch(PDOException $e){
		echo $e->getMessage();
	}

$string = json_decode(file_get_contents('php://input'));
$result = objectToArray($string);
$user_id = $result['message']['from']['id'];
$admin = '219985226';
$from = $result['message']['from'];
$text = $result['message']['text'];
$users = $conn->query("SELECT * FROM `users`");

$keyboard = array('keyboard' => array(array("تعداد کاربران", "خرید سرور مجازی")),'one_time_keyboard'=>true,'resize_keyboard'=>true);
$keyboard = json_encode($keyboard);


if( $admin != $user_id){

	if($text == '/start'){
	    try {
			$insert = $conn->prepare("INSERT INTO `users` ( `user_id`, `name`, `last_name`, `username`) VALUES (:user_id, :name , :last_name , :username)");
		    $insert->execute(array(
		    	':user_id' => $user_id,
		    	':name' => $from['first_name'],
		    	':last_name' => $from['last_name'],
		    	':username' => $from['username'],
		    ));
			sendMessage("خوش امدید . اطلاعات شما در سیستم ثبت شد ." , $user_id , null);

	    } catch(PDOException $e) {
	        echo $e->getMessage();                   
	    }		
	}

}else{
		if($text == '/start')
			sendMessage("خوش آمدید" , $user_id , $keyboard);
		elseif($text == 'تعداد کاربران')
			sendMessage("تعداد کاربران : ".count($users->fetchAll()) , $user_id , $keyboard);
		elseif($text == 'خرید سرور مجازی')
			sendMessage("https://my.tooba.co/cart.php?gid=3&currency=2" , $user_id , $keyboard);
		else{
			foreach($users->fetchAll(PDO::FETCH_ASSOC) as $value){
				sendMessage($text , $value['user_id'] , $keyboard);
			}			
		}

}


function objectToArray( $object )
{
    if( !is_object( $object ) && !is_array( $object ) ){
        return $object;
    }
    if( is_object( $object ) ){
        $object = get_object_vars( $object );
    }
    return array_map( 'objectToArray', $object );
}


function sendMessage($text , $user_id , $keyboard = null){
	$token = '414354064:AAsgrcHLd3fi4mEErMPP45selX_Zoi2o';
	$key = ($keyboard != null)? $keyboard : '';
	$url = 'https://api.telegram.org/bot'.$token .'/sendMessage?text='.$text.'&chat_id='.$user_id.'&reply_markup='.$key ;
	file_get_contents($url);
}
برای ارسال پیام به همه کاربران، لازمه از تلگرام ادمین (همون چت آیدی که در سطر ۱۲ وارد کرده اید) پیام رو ارسال کنید . کاربران قادر به مشاهده کیبورد اختصاصی نمی باشند. اگر سوالی براتون پیش اومد میتونید تو کامنت بپرسید . دانلود فایل ربات + دیتابیس

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *