از جمله مواردی که باعث ایجاد انگیزه و فعالیت بیشتر بین کاربرهای یک گروه تلگرامی میشه دادن هدیه و جایزه به اعضای اون گروه هستش؛ ربات امروز کارش اینه که به محض ورود هر عضو جدید اطلاعاتی مثل نام، نام خانوادگی، نام کاربری (در صورتی که اینا رو داشته باشه) و چت آیدیشون رو توی یه فایل متنی ذخیره میکنه و با استفاده از یه دستور که براش مشخص کردیم از بین اعضا یک نفر رو انتخاب میکنه به عنوان برنده و کسی که جایزه بهش تعلق میگیره.

طرز کار این ربات مشابه ربات خوش آمدگویی هستش. فقط به جای خوش آمد گفتن اطلاعات رو ذخیره میکنه؛ البته میتونید اینا رو ترکیب کنید که همزمان خوش آمدگویی هم بکنه. ما اینجا از متد getData برای دریافت اطلاعات آنی فعالیتهای گروه و از آرایه new_chat_members برای تشخیص اضافه شدن کاربر جدید به گروه استفاده میکنیم.
کاربرها به 2 روش وارد گروه میشن، یا از طریق گزینه add member اونا رو اضافه میکنید و یا بقیه اضافه میکنن، یا اینکه خودشون روی لینک دعوت کلیک میکنن. برای تشخیص ورودیهای جدید از کد زیر استفاده میشه:
$result = $telegram->getData();
$new_chat_members = $result["message"]["new_chat_members"];
آرایه new_chat_members اگه فرد یا افرادی به گروه بیاد اطلاعاتش رو بهمون میده.
از کدهای زیر هم برای ذخیره اطلاعات اونها توی فایل متنی به اسم json_array.txt (که بعد شما میتونید بجاش از پایگاه داده هم استفاده کنید) استفاده میشه.
if(count($new_chat_members) > 0){ // if new user Enter the group or Added to group
for($i=0; $i<count($new_chat_members); $i++){
$name = $new_chat_members[$i]["first_name"];
$family = $new_chat_members[$i]["last_name"];
$username = $new_chat_members[$i]["username"];
$chat_id = $new_chat_members[$i]["id"];
updateFile($chat_id, $name, $family, $username);
}
}
توی کد بالا من یه حلقه for نوشتم که اگه مثلا 10 نفر همزمان add شدن به گروه اطلاعات همه 10 نفر رو ذخیره کنه توی فایل متنیمون. اون تابع updateFile دقیق کارش همینه، یعنی آپدیت فایل.
توی فایلهایی که میذارم روی کانال میتونید جزئیات توابع قرعه کشی و ذخیره اطلاعات رو مشاهده کنید.
موفق باشید