پاسخ : آموزش ساخت ربات تلگرام از صفر تا 100
طبق توضیحات استارتر عزیز در پست اول بدون مشکل ربات ساخته شد، ممنونم ازشون
اگه مقدوره به جزئیات بیشتری بپردازند، ارسال و دریافت فایل و .... میخوام همراه متنم یه تصویر هم بفرستم و...
بعدش تو سایت خود تلگرام بصورت شی ء گرا مثال ها رو آورده، کاش شما هم شی گرایی رو تو کد انجام میدادین
پاسخ : آموزش ساخت ربات تلگرام از صفر تا 100
آقا چطوری جوابهای چند مرحله ای بگیریم؟
مثلا کاربری میخواد از طریق ربات تو سایت ما ثبت نام کنه
در مرحله اول میگین : نام کاربری رو بفرست، مرحله دوم ایمیلت : مرحله سوم رمزت و.....
این کار چطوری امکان پذیر هست؟
پاسخ : آموزش ساخت ربات تلگرام از صفر تا 100
باید تو دیتابیست مشخص کنی این کاربر(user_id) در کدوم مرحله از ثبت نام قرار داره و بر اساس اون پیام مناسبو برای کاربر ارسال کنی.
بعد دریافت جواب فیلد مربوط به مرحله در دیتابیسو عوض کنی
پاسخ : آموزش ساخت ربات تلگرام از صفر تا 100
نقل قول:
نوشته اصلی توسط
vpsman
باید تو دیتابیست مشخص کنی این کاربر(user_id) در کدوم مرحله از ثبت نام قرار داره و بر اساس اون پیام مناسبو برای کاربر ارسال کنی.
بعد دریافت جواب فیلد مربوط به مرحله در دیتابیسو عوض کنی
ممنونم از شما ، سپاس
سخت تر شد کار!
من دیتابیس زدم براش که اطلاعات یوزر آی دی ها رو نگهداری میکنه....
منتها براس ارسال فایل و عکس و دریافت فایل و عکس از کاربر نیاز به راهنمائی و مثال دارم، برای مراحل ثبت نام هم فهمیدم چطوری میشه اما فک کنم تو اجراش مشکل داشته باشم، اگه یه نمونه باشه عالی میشه
پاسخ : آموزش ساخت ربات تلگرام از صفر تا 100
نقل قول:
نوشته اصلی توسط
iroo
آقا چطوری جوابهای چند مرحله ای بگیریم؟
مثلا کاربری میخواد از طریق ربات تو سایت ما ثبت نام کنه
در مرحله اول میگین : نام کاربری رو بفرست، مرحله دوم ایمیلت : مرحله سوم رمزت و.....
این کار چطوری امکان پذیر هست؟
درون دیتابیس برای شخص مورد نظر نسبت به userid که یکتا هم هست ، یک رکورد ایجاد کنید.
وضعیت های متفاوتی را در نظر بگیرید ، به عنوان مثال :
وضعیت 0 : نام کاربری وارد شده
وضعیت 1 : رمز عبور وارد شده
توصیه میشه مستقیم در جدول کاربران سایتتون این کار را انجام ندید و جدول جدایی برای این مورد نظر بگیرید و درون این جدول برای هر userid فقط یک رکورد ایجاد کنید ، بیشتر از یک رکورد ثبت نکنید.
برای تشخیص اینکه الان کاربر درصورت وارد کردن یک متن چه کاری باید انجام دهد ، می توانید یک جدول رویداد هم ایجاد کنید ، که فرضا اگر برای userid فلان ، رویداد register بود ، یعنی به بخش ثبت نام رفته و بقیه روند ها انجام بشه.
اگر دیگر دوستان روش دیگری بدون نیاز به دیتابیس هم استفاده می کنند ممنون میشم عمومی کنند، البته فکر می کنم با استفاده از متد GET هم بتوان چنین کارهایی کرد البته تست نکردم.
پاسخ : آموزش ساخت ربات تلگرام از صفر تا 100
نقل قول:
نوشته اصلی توسط
shahinmq
درون دیتابیس برای شخص مورد نظر نسبت به userid که یکتا هم هست ، یک رکورد ایجاد کنید.
وضعیت های متفاوتی را در نظر بگیرید ، به عنوان مثال :
وضعیت 0 : نام کاربری وارد شده
وضعیت 1 : رمز عبور وارد شده
توصیه میشه مستقیم در جدول کاربران سایتتون این کار را انجام ندید و جدول جدایی برای این مورد نظر بگیرید و درون این جدول برای هر userid فقط یک رکورد ایجاد کنید ، بیشتر از یک رکورد ثبت نکنید.
برای تشخیص اینکه الان کاربر درصورت وارد کردن یک متن چه کاری باید انجام دهد ، می توانید یک جدول رویداد هم ایجاد کنید ، که فرضا اگر برای userid فلان ، رویداد register بود ، یعنی به بخش ثبت نام رفته و بقیه روند ها انجام بشه.
اگر دیگر دوستان روش دیگری بدون نیاز به دیتابیس هم استفاده می کنند ممنون میشم عمومی کنند، البته فکر می کنم با استفاده از متد GET هم بتوان چنین کارهایی کرد البته تست نکردم.
روش کار رو قشنگ فهمیدم، حالا تو اجراش باید دید که میتونم یا نه
برای ارسال و دریافت عکس و فایل از کاربر چیکار کنم؟
میشه یه نمونه مثال بزنید که به کاربر عکس بفرستیم یا دریافت کنیم
تشکر از شما
پاسخ : آموزش ساخت ربات تلگرام از صفر تا 100
نقل قول:
نوشته اصلی توسط
iroo
روش کار رو قشنگ فهمیدم، حالا تو اجراش باید دید که میتونم یا نه
برای ارسال و دریافت عکس و فایل از کاربر چیکار کنم؟
میشه یه نمونه مثال بزنید که به کاربر عکس بفرستیم یا دریافت کنیم
تشکر از شما
این قسمت را ببینید :
داده های مختلف دسته بندی شدند.
به عنوان مثال اگر از این کد استفاده کرده باشیم :
کد PHP:
$update = json_decode(file_get_contents("php://input"));
وقتی داده ی متنی ارسال بشه ، این مقدار پر هستش و وجود داره :
کد PHP:
$update->message->text;
برای اینکه بهتر متوجه بشید ، اول message هست و بعدش text
حالا اگر عکس باشه ،
اول message هست و بعدش photo ، اما photo یک آرایه هستش ، دلیلش هم اینه که به شما اندازه ی های مختلفی میده
مثلا :
کد PHP:
$update->message->photo[2]->file_id;
حال شما یک فایل آیدی دارید که باید از این طریق عکس را دریافت کنید :
کد PHP:
$get= file_get_contents('https://api.telegram.org/bot[token]/getFile?file_id='.$update->message->photo[2]->file_id.'');
$img = json_decode($get);
$img_s = file_get_contents('https://api.telegram.org/file/bot[token]/'.$img->result->file_path);
file_put_contents('آدرس داخلی جهت ذخیره عکس',$img_s);
پاسخ : آموزش ساخت ربات تلگرام از صفر تا 100
shahinmq عزیز بسیار ممنونم، تست می کنم نتیجش رو خدمتتون میگم، بسیار سپاس، گلی گل گل گل
بخاطر اینکه تاپیک هم زیاد شلوغ نیشه دیگه نقل قول نکردم،
- - - Updated - - -
راستی دریافت عکس چطوری میشه ؟
پاسخ : آموزش ساخت ربات تلگرام از صفر تا 100
نقل قول:
نوشته اصلی توسط
iroo
shahinmq عزیز بسیار ممنونم، تست می کنم نتیجش رو خدمتتون میگم، بسیار سپاس، گلی گل گل گل
بخاطر اینکه تاپیک هم زیاد شلوغ نیشه دیگه نقل قول نکردم،
- - - Updated - - -
راستی دریافت عکس چطوری میشه ؟
خواهش میکنم
کد قبلی برای دریافت عکس از کاربر بود
برای ارسال عکس به کاربر از تابعی که براتون نوشتم می تونید استفاده کنید :
کد PHP:
function sendphoto($chatid,$path,$caption='تصویر')
{
$url = 'https://api.telegram.org/bot[token]/sendPhoto?chat_id='.$chatid;
$ch = curl_init();
$post_fields = array('chat_id'=> $chatid,'caption'=>$caption,'photo'=> new CURLFile(realpath($path)));
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type:multipart/form-data"));
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
$res = curl_exec($ch);
if(curl_error($ch))
{
var_dump(curl_error($ch));
}
else
{
return json_decode($res);
}
}
پاسخ : آموزش ساخت ربات تلگرام از صفر تا 100
نقل قول:
نوشته اصلی توسط
iroo
ممنونم از شما ، سپاس
سخت تر شد کار!
من دیتابیس زدم براش که اطلاعات یوزر آی دی ها رو نگهداری میکنه....
منتها براس ارسال فایل و عکس و دریافت فایل و عکس از کاربر نیاز به راهنمائی و مثال دارم، برای مراحل ثبت نام هم فهمیدم چطوری میشه اما فک کنم تو اجراش مشکل داشته باشم، اگه یه نمونه باشه عالی میشه
والا من که پلتیک زدم به کار
یکی یکی مرحله هارو توی لوپ گذاشتم
وقتی کاربر ایمیلش رو میده از طریق preg_match تشخیص میده ایمیلش رو وارد کرده و بعد رمز رو میسازم و خودم بهش میدم . عجیبه ولی برای ما همین قدر هم کفایت کرد :D