HaSaN-Zzz
6 سال پیش توسط HaSaN-Zzz مطرح شد
2 پاسخ

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

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


ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 6 سال پیش مطرح شد
0

از حالت کیبورد استفاده میکنید اول دسته های اصلی رو میفرستید بصورت کیبورد و بعد از انتخاب دسته های فرزند رو از دیتابیس بر اساس دسته پدر در میارید و بصورت کیبورد دوباره میفرستید


HaSaN-Zzz
تخصص : php laravel
@m.hassan.zarkhani 6 سال پیش آپدیت شد
0

من این کد رو نوشتم ولی هنوز در گرفتن زیردسته های دسته های اصلی مشکل دارم نمیدونم دستور command رو چجوری بصورت داینامیک برای هر عنصر از ارایه ایجاد کنم ؟؟؟

<?php

namespace AppHttpControllers;

use AppCategory;
use IlluminateHttpRequest;
use TelegramBotLaravelFacadesTelegram;

class TelegramController extends Controller
{

    protected $chat_id;
    protected $username;
    protected $text;

    public function telegram()
    {
        $response=Telegram::setWebhook([
              'url' => 'https://071efbb1.ngrok.io/TOKEN/webhook'
          ]);
        return GuzzleHttpjson_encode($response);
    }

    public function webhook(Request $request)
    {
        $this->chat_id = $request['message']['chat']['id'];
        $this->username = $request['message']['from']['username'];
        $this->text = $request['message']['text'];

        if ($this->text == '/start' || $this->text == 'بازگشت به منو اصلی  ↪'){
            $text = '🛒 !...به فروشگاه پوشاک بوتیک خوش امدید' ;
            $keyboard = [
                [' 👠  مشاهده محصولات '],
                ['ویژه ها 👑 ',' 👁 پربازدیدترین',' 🆕 جدیدترین ها ' ],
                [' ❤️ لیست موردعلاقه من',' 🔍 سوابق مرور من'],
                ['ارتباط با ما 📩  ']
            ];
            $this->CreateKeyboard($keyboard,$text);
        }
        elseif ($this->text == '👠  مشاهده محصولات' || $this->text == 'بازگشت به دسته قبل ↪'){
            $this->getCategory();
        }
        elseif ($this->text !== '👠  مشاهده محصولات' &&  '/start'){
            $this->getSubCategory($this->text);
        }

    }

    public function test(){

    }

    public function CreateKeyboard($keyboard,$text){
        $reply_markup = Telegram::replyKeyboardMarkup([
            'keyboard' => $keyboard,
            'resize_keyboard' => true,
        ]);

        Telegram::sendMessage([
            'chat_id' => request('message.chat.id'),
            'text' => $text,
            'reply_markup' => $reply_markup
        ]);

    }

    public function getCategory(){

        $categories = Category::whereParent('اصلی')->get();

        if ($categories){
            $text = '🛍 دسته مورد نظر خود را انتخاب نمایید!';
                $keyboard = [];
                foreach ($categories as $category){
                    $cats=[$category->title];
                    array_push($keyboard,$cats);
                }
                $back=[['بازگشت به منو اصلی  ↪']];

                $keys=array_merge($keyboard,$back);
                $this->CreateKeyboard($keys,$text);
        }else{
            $text = 'دسته بندی وجود ندارد';
            Telegram::sendMessage([
                'chat_id' => request('message.chat.id'),
                'text' => $text
            ]);
        }
    }
    public function getSubCategory($category_title){

        $categories = Category::whereParent($category_title)->get();

        if ($categories){
            $text = '🛍 دسته مورد نظر خود را انتخاب نمایید!';
                $keyboard = [];
                foreach ($categories as $category){
                    $cats=[$category->title];
                    array_push($keyboard,$cats);
                }
            $back=[['بازگشت به دسته قبل ↪']];

            $keys=array_merge($keyboard,$back);
            $this->CreateKeyboard($keys,$text);
        }else{
            $text = 'دسته بندی وجود ندارد';
            Telegram::sendMessage([
                'chat_id' => request('message.chat.id'),
                'text' => $text
            ]);
        }

    }

}

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

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