راکت

تعریف روت ربات تلگرلم

21 پاسخ

سلام دوستان برای اینکه بتونم در پروژه لاراولی روتی رو برای تلگرام تعریف کنم باید ویژگی خاصی براش بزنم یا بهمون روش همیشگی میشه یک روت تعریف کرد و بعد به کنترلر وصلش کرد ؟

amir
amir
@behzadi
ثبت پرسش جدید

پاسخ‌ها

21
حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

سلام
بفرمایید کاربرد تلگرام اینجا چطوریه؟ مثلا میخواید یک ربات داشه باشید که فقط به کاربر مخاطب سرویس بده یا اینکه قرار یک گروه یا کانال رو مدیریت کنه یا اینکه برای گروه ها یا کانال های بیشتری باید سرویس بده؟ جزییات سرویس رو مشخص کنید تا بر اساس اون استراتژی چیده بشه.

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@hekmati قراره که کاربر درخواست بفرسته و بعد پاسخ اون رو دریافت کنه فقط همین الان من روت رو به صورت گت تعریف کردم و کد های ربات رو داخل کنترلر قرار دادم اینجوری مشکلی نداره ؟ میخام با وبهوک مشکلی نداشته باشه

شاید پاسخ شما همین‌جا باشد

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

ببینید تلگرام بات در روش وب هوک هم از متد get پشتیبانی میکنه هم از روش post بر اساس نیاز خودتون می تونید استفاده کنید.
اینجا بخش Making requests رو مطالعه کنید.

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@hekmati اقای حکمتی من روت رو براش به صورت گت تعریف کردم و وبهوک رو هم روی اون روت ست کردم ولی هرکاری میکنم پاسخی به پیام ها نمیده ! تنظیمات دیگه ای هم داره ؟ و چجوری میتونم عیب یابیش کنم ؟

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

دامنه ای که معرفی کردید ssl داره؟
برای درک بهتر کد رو بفرستید.

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@hekmati من جایی مطالعه کردم که وب هوک به صورت post درخواست رو میفرسته به ادرسی که بهش میدیم درسته ؟

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

این کد ها هستش که متد دریافت کننده telegram هستش البته این کدها ازمایشی هست و هنوز به خاطر حل نشدن این مشکل فرصت به تست کد های اصلی نرسیده !

public function sentotelegram($method, $parameters=[], $headers = array("Content-Type: application/json")) 
    {
        $handle = curl_init("https://api.telegram.org/bot**********-lE/$method");
        curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($handle, CURLOPT_POSTFIELDS, json_encode($parameters));
        curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
        $result = curl_exec($handle);
        echo $result;
    }
    public function telegram()
    {
        //دریافت اطلاعات پیام ارسالی
                $content = file_get_contents("php://input");
                $content = json_decode($content, true);
                //agar yek payam ersal shode bashad
                if(isset($content['message'])) {
                    $message = $content['message'];
                    //agar payam ersali, matni bashad
                    if(isset($message['text'])){
                        if($message['text'] == '/start') {
                            //chat_id marbut be ferestendeye payam
                            $chat_id = $message['from']['id'];
                            $first_name = $message['from']['first_name'];
                            $parameters = [
                                'chat_id' => $chat_id,
                                'text'    => 'کاربر عزیز '. $first_name .'، خوش آمدید'
                            ];
                        $this->sendToTelegram('sendMessage', $parameters);
                        }
                    }
                }
    }
amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@hekmati فایل log رو دیدم به تلگرام ارور 405 رو میده که به دلیل همون get بودن روت هست و باید post باشه ولی الان که post کردم ارور 419 رو میده که مربوط به csrf توکن هستش این رو چجوری حل کنم ؟

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@hekmati ارور 419 رو برطرف کردم اما الان ارو 500 میده 😂😂😂 ماشالا تمام ارور های لاراول داره براما اجرا میشه

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

بله در خواست های post هم پشتیبانی میشه

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@hekmati شما روشی برای حل ارور 500 نمیدونین ؟ فقط برای روت تلگرام اینو میده

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

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

https://api.telegram.org/botYourTokenBot/sendMessage?chat_id=YourChatId&text=hello
amir
amir
@behzadi

تخصص: بک اند و فرانت اند

بله تست کردم با کرل پیام رو هم فرستادم از سرور مشکلی نداشت فقط با وب هوک مشکل داره @hekmati

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@hekmati این رو داخل فایل ارور لاگ مینویسه :

91.108.6.150 - - [03/Oct/2021:11:25:12 +0000] "POST /telegram HTTP/1.1" 500 202076 "-" "-"
حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

نتیجه ای که توی وب هوک بر میگردونه رو بفرستید

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@hekmati اصلا نتیجه ای برام نمیفرسته

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

@hekmati یه چیز عجیب دیگه اینکه وقتی از روت ها دیگه سایتم با متد پست میرم به روت تلگرام ارور نمیده و فقط برای وب هوک این ارور هست انگار !

حسن حکمتی
حسن حکمتی
@hekmati

تخصص: برنامه نویس وب و بلاکچین

توکن بات و چت آی دی خودتون رو برام بفرستید تا چک کنم

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

تشکر درست شد!

amir
amir
@behzadi

تخصص: بک اند و فرانت اند

کدی که در قسمت بالا نوشته بودم یک متد داشت به نام sentotelegramکه به اشتباه حرف d رو نزاشته بودم

صفحه 1 از 2

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام