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

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

با سلام و عرض ادب خدمت تمامی کاربران عزیز
در این آموزش قصد داریم که اطلاعات تمامی کاربران رو در دیتابیس sqlite ذخیره کنیم، تا هم آمار کاربران ربات رو داشته باشیم و هم بتوانیم به تمامی کاربران پیام ارسال کنیم .
ابتدا یک ربات در تلگرام ایجاد کنید، در صورتی که نیاز به آموزش ساخت دارید به این مطلب مراجعه کنید .

۱- یک دیتابیس با فیلد های (id – user_id – name – last_name – username – date) در sqlite یا mysql ایجاد میکنیم . چون میخوایم با PDO کار کنیم مهم نیست از چه دیتابیسی استفاده میکنید .

تیبل users رو در sqlite رو ایجاد کنید . برای مدیریت sqlite بهترین گزینه افزونه فایرفاکس است .

در قدم بعد فایل sql رو به همراه index.php در هاستتون آپلود کنید و مطمئن بشید که کوئری insert به درستی کار میکنید .

توضیحات کد بالا :
– ابتدا میایم به sqlite متصل میشیم .
– در سطر ۹ اطلاعاتی رو که ربات تلگرام برامون ارسال میکنه رو به صورت آبجکت دریافت میکنیم . توسط فانکشن objectToArray اطلاعات دریافتی رو به آرایه تبدیل میکنیم .
– در سطر ۱۲ چت آیدی خودتون رو وارد کنید ( برای دریافت چت ایدی میتونید از این ربات استفاده کنید ) و در سطر ۶۸ توکن ربات رو وارد کنید .
– فانکشن sendMessage برای ارسال پیام به کاربر می باشد .

برای ارسال پیام به همه کاربران، لازمه از تلگرام ادمین (همون چت آیدی که در سطر ۱۲ وارد کرده اید) پیام رو ارسال کنید . کاربران قادر به مشاهده کیبورد اختصاصی نمی باشند.
سعی شده تا حد امکان کدها خیلی ساده و قابل فهم نوشته باشد . حالا اگر سوالی براتون پیش اومد میتونید تو کامنت بپرسید .


  1. مصطفی - ۴ شهریور ۱۳۹۶

    سلام ، خسته نباشید

    تو این آموزش اگه کاربر برای بار اول عضو بشه مشخصاتش تو db ثبت میشه؟؟ و دفعات بعد پیام خوش آمدید براش ارسال میشه؟؟
    اگه اینطور هست کدوم کد چک میکنه که کاربر تو db هست؟؟

    اگه بخام پیامد خوش آمد این مدل باشه : طوبی گستر خوش آمدید یا مصطفی خوش آمدید ، چیکار کنم؟؟

    فایل php رو با هر اسمی که ذخیره کنم مشکلی نداره؟؟

    اطلاعات کاربران id , name …. از فایل db میتونم ببینم؟؟؟

    این فایل db تا چقدر میتونه اطلاعات کاربر دریافت کنه و به هاست معمولی فشار میاره؟؟؟

  2. ali - ۵ شهریور ۱۳۹۶

    سلام
    میتونید قبل کاربر در دیتابیس چک کنید که user_id کاربر فعلی اگه وجود داشته باشه مجدد ثبتش نکنه و پیام هم براش ارسال نشه …
    این کد نام خانوادگی کاربر رو میگیره : $result[‘message’][‘from’][‘last_name’]
    با هر نامی که ذخیره میکنید- هنگام تنظیم کردن setWebhook ادرس دقیق فایل رو بنویسید .
    برای نمایش اطلاعات از پلاگین فایرفاکس استفاده کنید و یا اینکه یه پنل تحت وب بنویسید .
    اگر فکر میکنید کاربرانتون خیلی زیاد هست از mysql استفاده کنید . کانکت شدن به mysql به شکل زیر می باشد :
    $conn = new PDO(“mysql:host=localhost;dbname=telegram”,”root”,”123″);

  3. مصطفی - ۴ شهریور ۱۳۹۶

    ی مشکل دیه هس

    هر پیام رو ۲بار میفرسه 😐

  4. ali - ۵ شهریور ۱۳۹۶

    احتمالا یه جای از کدتون مشکلی داره که دستور ۲ بار اجرا میشه …

  5. امین - ۷ آذر ۱۳۹۶

    با سلام
    برای محددودیتی که تلگرام در ارسال پیام با ربات گذاشته چه میشه کرد؟
    هر پیام وقتی کاربران تعداد بالا باشند چندین بار ارسال میشه

  6. ali - ۲۳ آذر ۱۳۹۶

    سلام
    بله میتونید از طریق کرون جاب در هاستتون این کار رو انجام بدید .

  7. وحید عراقی - ۱ فروردین ۱۳۹۷

    با سلام خدمت شما دوست عزیز که خالصانه این آموزش خوب رو بصورت رایگان در اختیار دیگران گذاشتید
    فقط چند تا نکته هست که اگر من رو راهنمایی کنید واقعاً لطف بزرگی در حق من کردید
    من زیاد php بلد نیستم ولی میتونم گلیمم رو از آب بیرون بکشم
    این رو گفتم که اگر کمکی میکنید بدونید که اگر به صورت جزیی تر و همچین کد رو هم بنویسید برای من که متوجه بشم و از شما ممنونم

    نکته اول این که وقتی پیامی به کاربران ارسال میشه پیام به هم ریختس یعنی بدون فاصله است میدونم برای این کار که کاربر پیام رو بتونه صحیح ببینه باید از دستور urlencode استفاده بشه این urlncode رو باید کجای این کد ها بذارم؟

    نکته دوم اینکه دلیل اینکه برای یک کاربر دو بار پیام میره یا بیشتر بخاطر اینه که هر با کاربر ربات رو پاک کنه و دوباره برگرده به ربات مجدداً سیو میشه در دیتا بایس شما توضیح دادید چیکا باید کرد ولی برای آدم های حرفه ای است و من کامل متوجه نشدم اگه لطف کنید وکد کامل اون رو هم بذارید ممنون میشم از شما

    باز هم از شما تشکر میکنم بابت این مطلب کاربردی و قشنگ

  8. علی - ۱ مهر ۱۳۹۷

    سلام
    من وقتی میخوام برای تعداد بالای کاربران پیام بفرستم،پیام برای هر کاربر چندین بار ارسال میشه
    تو گوگل سرچ کردم و تو پاسخ های شما هم دیدم که باید از کرون جاب استفاده کنم
    میشه اطلاعاتیی راج بهش بدید؟میدونم که باهاش میشه یک کاری رو تعریف کرد که تو زمان های مختلف اجرا بشه.
    اما من برا اینکه بخوام برای تمامی کاربرا با کرون جاب پیغام ارسال کنم باید چکار کنم؟

  9. ali - ۱۹ آذر ۱۳۹۷

    سلام
    باید فایل جداگانه ای ایجاد کنید و دستور حلقه ارسال پیام را در این فایل قرار بدید و در هر بار اجرا کردن به ۲۰ عدد کاربر پیام ارسال کند. آموزش ساخت فایل کرون جاب رو انشاءالله در آموزش زیر قرار خواهیم داد :
    کلیک کنید


همینک دیدگاه خود را برای ما بنویسید!