شبکه های اجتماعیمقالات

آموزش ساخت ربات سروش پلاس

آموزش ساخت ربات سروش پلاس

آموزش ساخت ربات سروش پلاس

راهنمای استفاده از مستربات سروش پلاس

ارایه خدمات ارزش افزوده و سرویس‌های متنوع بر بستر پیام‌رسان سروش پلاس در جذاب‌تر شدن این پیام‌رسان، تأثیر چشمگیری دارد.
این مهم تنها با کمک توسعه‌دهندگان عزیز صورت خواهد پذیرفت. از این‌رو بستر توسعه سروش پلاس را با استفاده از «مستر بات سروش پلاس» برای شما علاقمندان فراهم آوردیم تا در کنار هم خدمات متنوعی را برای کاربران سروش پلاس فراهم کنیم.
در ادامه می‌توانید از راهنمای ساخت ربات سروش پلاس استفاده نمایید.

 

 

امکانات بات سروش :

در بات سروش پلاس شما توسعه دهنده ی عزیز میتوانید انواع پیام را که در لیست زیر موجود میباشد را به کاربران خود ارسال کنید.ساخت ربات سروش پلاس :

  • متن
  • عکس
  • فیلم
  • صدا
  • عکس متحرک
  • صدای ضبط شده
  • موقعیت جغرافیایی
  • و تمامی فرمتهای مجاز در سرور سروش پلاس

همچنین شما میتوانید با ارسال کیبورد برای بات خود فرآیند پرسش و پاسخ را در بات خود آسان‌تر کنید.

ساخت ربات سروش پلاس را در ادامه به شما آموزش خواهیم داد

 

 

قدم اول :

در این بخش شما توسعه‌دهنده عزیز می‌توانید نحوه ساخت بات در سروش پلاس را به سادگی آموزش ببینید.

در قدم اول با عضویت در پیام‌رسان سروش پلاس و مراجعه به ربات مدیریت بات‌ها به آدرس mrbot@ مراحل پیاده‌سازی بات خود را آغاز خواهید کرد.

  1. انتخاب گزینه‌ی ایجاد بات و ثبت شناسه‌ی بات. رعایت موارد بشرح ذیل ضروری‌ست:
    • حداقل تعداد حروف هر شناسه می‌بایست ۳ حرف باشد.
    • حروف استفاده شده می‌بایست انگلیسی باشد.
    • نام انتخابی می‌بایست یکتا باشد که در زمان انتخاب نام در «مستر بات» این مورد در لحظه بررسی شده و نتیجه به شما اطلاع داده خواهد شد.
  2. دریافت توکن و ذخیره‌ی آن
  3. ثبت اطلاعات بات که شامل، نام نمایشی بات، پیام آغازین، اطلاعات پروفایل بات و عکس بات می‌باشد.

 

 

دریافت پیام کاربران :

توسعه‌دهندگان برای برقراری ارتباط و دریافت پیام‌های کاربران می‌بایست به این طریق ارتباط خود را برقرار کنند:

مقدار TOKEN در ابتدای ثبت نام بات به شما داده شده است.
تفاوت نسخه ی شماره ۲ getMessage نسبت به نسخه ی ۱ آن در متد ارسال پیام HEALTH_CHECK میباشد این پیام شما را از وصل بودن بات به سرور مطلع کرده. از همین رو توصیه میشود از نسخه ی ۲ getMessage برای دریافت پیام استفاده کنید. توضیحات کاملتر این پیام در بخش ‘ اجزای پیام کاربران بات ‘ قابل مشاهده است.

 

 

اتصال به بات سروش برای دریافت پیام :

نوع ارتباط از استاندارد (Server Sent Events (SSE پشتیبانی می‌کند، که در آن پس از برقراری اتصال با سرور بات، که آدرس آن در بالا آورده شد، ارتباط به صورت زنده باقی می‌ماند و پیام‌های دریافتی بات شما بر روی همین اتصال برای شما ارسال می‌شود. توجه داشته باشید که برای دریافت پیام نیازی به ارسال مجدد درخواست getMessage مانند روش long polling نبوده و در اولین تلاش برای دریافت پیام آن اتصال قطع نخواهد شد و پیام ها یک به یک به دست شما خواهد رسید. از مزیت روش SSE نسبت به روش قدیمی تر webhook میتوان به این موضوع اشاره کرد که شما دیگر برای دریافت پیام نیازی به داشتن آدرس معتبر نداشته و میتوانید فقط با اتصال به اینترنت پیام های خود را دریافت کرده و به آنها پاسخ دهید. توسعه دهندگان می‌بایست در زمان برقراری ارتباط یکی از دو مقدار زیر را در HTTP HEADER درخواست قرار دهند.

نمونه‌ی اول:

نمونه‌ی دوم:

نمونه درخواست getMessage با استفاده از curl:

نمونه درخواست با استفاده از openssl:

نمونه درخواست با استفاده از کتابخانه‌ی PHP:

نمونه درخواست با استفاده از کتابخانه ی Python:

 

 

اجزای پیام کاربران به بات :

پیام ارسال شده به سمت شما در قالب JSON بوده و شامل موارد زیر می‌باشد که هرکدام به اختصار در جدول زیر توضیح داده شده است.

جدول ۱: همه فیلدهایی که در پیام کلاینت به بات ممکن است موجود باشد

توضیحاتاجبارینوعنام
۱ادرس فرستنده‌ی پیامtrueStringfrom
۲محتوای داده‌ی ارسالی کاربرtrueStringbody
۳نوع محتوای ارسال شده که می‌تواند : START,STOP,TEXT , LOCATION , FILE , HEALTH_CHECK باشد .trueTypetype
۴زمان ارسال پیام بر اساس میلی ثانیه از 1970trueStringtime
۵شناسه‌ی فایل اپلود شده در سروش پلاسfalseStringfileId
۶نام فایل اپلود شدهfalseStringfileName
۷نوع فایل اپلود شده که می‌تواندIMAGE , VIDEO,GIF,PUSH_TO_TALK,ATTACHMENT باشد .falsefileTypefileType
۸حجم فایل اپلود شدهfalseDoublefileSize
۹ادرس فایل اپلود شدهfalseStringfileUrl
۱۰ادرس عکس بند انگشتیfalseStringthumbnailUrl
۱۱میزان سایز عرض عکسfalseDoubleimageWidth
۱۲میزان سایز طول عکسfalseDoubleimageHeight
۱۳زمان ویدیوfalseDoublefileDuration
۱۴میزان سایز عرض عکس بند انگشتیfalseDoublethumbnailWidth
۱۵میزان سایز طول عکس بند انگشتیfalseDoublethumbnailHeight
۱۶نام مخاطب ارسال شدهfalseStringnickName
۱۷ادرس عکس مخاطب ارسال شدهfalseStringavatarUrl
۱۸شماره‌ی تلفن مخاطب ارسال شدهfalseDoublephoneNo
۱۹عرض جغرافیاییfalseDoublelatitude
۲۰طول جغرافیاییfalseDoublelongitude

نوع پیام (فیلد TYPE): محتوای ارسالی در این فیلد از نوع String بوده و می‌تواند یکی از مقادیر زیر باشد.

  • START: پیام آغاز به کار بات، که در زمان زدن دکمه ی شروع در صفحه ی بات به شما ارسال میشود.
  • STOP: پیام متوقف کردن بات، که در زمان زدن دکمه ی متوقف کردن بات به شما ارسال میشود.
  • TEXT: فقط شامل پیام متنی است. فیلد body حتما دارای مقدار است .
  • FILE: شامل فایل می‌باشد. فیلد‌های مربوط به فایل حتما دارای مقدار هستند و فیلد body نیز در صورت کپشن‌دار بودن فایل ارسال می‌شود.
  • LOCATION: شامل موقعیت جغرافیایی می‌باشد .
  • HEALTH_CHECK: پیام اطلاع از وصل بودن بات شما به سرور که هر ۵ دقیقه یکبار برای شما ارسال میشود. (در صورت عدم دریافت این پیام در زمانی بیش از ۵ دقیقه شما میبایست ارتباط خود با سرور را برای دریافت پیام مجددا وصل کنید)

نوع فایل (فیلد FileType): محتوای فایل ارسالی از نوع String بوده و می‌تواند یکی از نوع‌های زیر می‌تواند باشد:

  • IMAGE: تصویر
  • GIF: تصویر متحرک
  • VIDEO: فیلم
  • PUSH_TO_TALK: صدا (ویس)
  • CONTACT: مخاطب
  • ATTACHMENT: تمامی فایل‌هایی که جزو موارد بالا نباشند.

نوع پیام متنی (TYPE: START)

در صورتی که داده ی START در متغیر TYPE باشد، موارد زیر دارای مقدار می‌باشند.

جدول ۲: اجزای پیام، اگر پیام از نوع START باشد

نمونهنوع دادهداده
۱userStringfrom
۲” “Stringbody
۳” 1505744054437″Stringtime
۴STARTTYPEtype

مثال

نوع پیام متنی (TYPE: STOP)

در صورتی که داده ی STOP در متغیر TYPE باشد، موارد زیر دارای مقدار می‌باشند.

جدول ۲: اجزای پیام، اگر پیام از نوع STOP باشد

نمونهنوع دادهداده
۱userStringfrom
۲” “Stringbody
۳” 1505744054437″Stringtime
۴STOPTYPEtype

مثال

نوع پیام متنی (TYPE: HEALTH_CHECK)

در صورتی که داده ی HEALTH_CHECK در متغیر TYPE باشد، موارد زیر حتما دارای مقدار می‌باشند.

نوع پیام متنی (TYPE: TEXT)

در صورتی که داده ی TEXT در متغیر TYPE باشد، موارد زیر دارای مقدار می‌باشند.

جدول 2: اجزای پیام، اگر پیام از نوع HEALTH_CHECK باشد

نمونهنوع دادهداده
۱MrBotStringfrom
۲” 1505744054437″Stringtime
۳HEALTH_CHECKTYPEtype

مثال

جدول ۲: اجزای پیام، اگر پیام از نوع TEXT باشد

نمونهنوع دادهداده
۱userStringfrom
۲” SALAM “Stringbody
۳” 1505744054437″Stringtime
۴TEXTTYPEtype

مثال

نوع پیام فایل (TYPE: FILE)

در صورتی که داده ی FILE در متغیر TYPE باشد، موارد زیر دارای مقدار می‌باشند.

جدول ۳: اجزای پیام، اگر پیام از نوع FILE باشد

نمونهنوع دادهداده
۱userStringfrom
۲“salam”Stringbody
۳” 1505744054437″Stringtime
۴FILETEXT , FILE , LOCATIONtype
۵“13235694”StringfileId
۶“user”StringfileName
۷IMAGE or VIDEO or …IMAGE , VIDEO , GIF , PUSH_TO_TALK , ATTACHMENTfileType
۸“http://url”StringfileUrl
۹123.456DoublefileSize

مقدار fileType می‌تواند به صورت زیر قرار بگیرد:

جدول ۳.۱: اجزای داده‌ی fileType

نمونهنوع دادهداده
۱image.png(Image files like : (.jpg , .png , .bmpIMAGE
۲video.mp4(Video files like : (.mpg , .mp4, .3gpVIDEO
۳image.gif(Gif images file : (.gifGIF
۴audio.amr(Recorded sound file like : (.amr, .m4a, .aacPUSH_TO_TALK
۵text.pdfAll file typeATTACHMENT

نوع پیام فایل حاوی عکس (fileType: IMAGE) یا تصویر متحرک (fileType: GIF)

در صورتی که مقدار fileType برابر IMAGE و یا GIF باشد متغیر‌های زیر نیز در کنار متغیر های جدول ۳ شامل مقدار هستند:

جدول ۳.۲: اجزای پیام، اگر فایل از نوع IMAGE یا GIF باشد

نمونهنوع دادهداده
۱“http://image.png”StringthumbnailUrl
۲120.2DoubleimageWidth
۳250.6DoubleimageHeight

مثال

نوع پیام فایل حاوی ویدئو (fileType: VIDEO)

در صورتی که مقدار fileType برابر VIDEO باشد متغیر‌های زیر نیز در کنار متغیر های جدول ۳ شامل مقدار هستند:

جدول ۳.۳: اجزای پیام، اگر فایل از نوع VIDEO باشد

نمونهنوع دادهداده
۱720000StringfileDuration
۲“http://video.png”StringthumbnailUrl
۳120.0DoublethumbnailWidth
۴250.6DoublethumbnailHeight

مثال

نوع پیام فایل حاوی صدای ضبط شده (fileType: PUSH_TO_TALK)

در صورتی که مقدار fileType برابر PUSH_TO_TALK باشد متغیر زیر نیز در کنار متغیر های جدول ۳ شامل مقدار هست:

جدول ۳.۴: اجزای پیام، اگر فایل از نوع PUSH_TO_TALK باشد

نمونهنوع دادهداده
۱720000DoublefileDuration

مثال

نوع پیام مکان (TYPE: LOCATION)

در صورتی که داده ی LOCATION در متغیر TYPE باشد، موارد زیر دارای مقدار می‌باشند.

جدول ۴: اجزای پیام، اگر پیام از نوع LOCATION باشد

نمونهنوع دادهداده
۱userStringfrom
۲” 1505744054437″Stringtime
۳LOCATIONLOCATIONtype
۴35.6892Doublelatitude
۵51.3890Doublelongitude

مثال

 

 

ارسال پیام بات به کاربران :

توسعه‌دهندگان برای ارسال پیام به کاربران می‌بایست به این طریق ارتباط خود را برقرار کنند:

مقدار TOKEN در ابتدای ثبت نام بات به شما داده شده است.

در صورت موفقیت‌آمیز بودن مقدار http status برگشتی 200 می‌باشد.

توسعه‌دهندگان می‌‌توانند در زمان برقراری ارتباط در HEADER HTTP مشخص کنند که نوع داده‌ی ارسالی به چه صورتی باشد. نوع داده می‌تواند به صورت XML یا JSON باشد. برای استفاده شما می‌بایست به صورت زیر اقدام کنید:

نمونه درخواست ارسال پیام با استفاده از curl:

 

 

اجزای پیام بات به کاربران برای ساخت ربات سروش پلاس :

  • نوع پیام متنی (TYPE: TEXT)
  • نوع پیام فایل (TYPE: FILE)
    • نوع پیام فایل حاوی عکس (fileType: IMAGE) یا تصویر متحرک (fileType: GIF)
    • نوع پیام فایل حاوی ویدئو (fileType: VIDEO)
    • نوع پیام فایل حاوی صدای ضبط شده (fileType: PUSH_TO_TALK)
  • نوع پیام تغییر کیبورد (TYPE: CHANGE)
  • کیبورد سفارشی (CUSTOM KEYBOARD)
    • کلاس CustomKey

پیام ارسال شده از سمت شما باید در قالب JSON باشد و شامل بخشی از موارد زیر می‌باشد که هرکدام به اختصار در جدول زیر توضیح داده شده است.

جدول ۵: همه فیلدهایی که در پیام بات به کلاینت ممکن است موجود باشد.

توضیحاتاجبارینوعنام
۱آدرس گیرنده ی پیامtrueStringto
۲محتوای داده ی ارسالی به کاربرfalseStringbody
۳نوع استفاده محتوای ارسالی که می‌تواند : BOT , CHANNEL باشد. (همچنین برای سازگاری با نسخه های قبل در صورت وجود نداشتن این مقدار، مقدار پیشفرض BOT در نظر گرفته می‌شود)falseMajorTypemajorType
۴نوع محتوای ارسالی که می‌تواند : TEXT , LOCATION , FILE , KEYBOARD_CHANGE باشد.trueTypetype
۵زمان ارسال پیام بر اساس میلی ثانیه از 1970falseStringtime
۶نام فایل آپلود شدهfalseStringfileName
۷نوع فایل آپلود شده که می‌تواندIMAGE ,VIDEO,GIF,PUSH_TO_TALK,ATTACHMENT باشد.falseFileTypefileType
۸حجم فایل آپلود شدهfalseDoublefileSize
۹ادرس فایل آپلود شده در سرور‌های سروش پلاسfalseStringfileUrl
۱۰آدرس عکس بند انگشتیfalseStringthumbnailUrl
۱۱میزان سایز عرض عکسfalseDoubleimageWidth
۱۲میزان سایز طول عکسfalseDoubleimageHeight
۱۳زمان ویدیوfalseDoublefileDuration
۱۴میزان سایز عرض عکس بند انگشتیfalseDoublethumbnailWidth
۱۵میزان سایز طول عکس بند انگشتیfalseDoublethumbnailHeight
۱۶نام مخاطب ارسال شدهfalseStringnickName
۱۷آدرس عکس مخاطب ارسال شدهfalseStringavatarUrl
۱۸شماره ی تلفن مخاطب ارسال شدهfalseDoublephoneNo
۱۹عرض جغرافیاییfalseDoublelatitude
۲۰طول جغرافیاییfalseDoublelongitude

ننوع استفاده ی پیام (MAJOR_TYPE: BOT)

برای ارسال پیام به بات نیازی به گذاشتن مقدار majorType نمیباشد ولی در صورت گذاشتن این فیلد مقدار آن باید BOT باشد که می‌باست جدول زیر شامل مقدار باشد :

جدول6: اجزای پیام، اگر پیام از نوع BOT باشد

نمونهنوع دادهداده
۱userStringto
۲“salam”Stringbody
۳TEXTTYPEtype

مثال

نوع استفاده ی پیام (MAJOR_TYPE: CHANNEL)

برای ارسال پیام به کانال شما میبایست مقدار majorType را CHANNEL قرار دهید و در فیلد to نیز لینک کانال را ارسال کنید که می‌باست جدول زیر شامل مقدار باشد :

جدول6: اجزای پیام، اگر پیام از نوع CHANNEL باشد

نمونهنوع دادهداده
۱channelLinkStringto
۲“salam”Stringbody
۳TEXTTYPEtype
۴CHANNELMajorTypemajorType

مثال

نوع پیام متنی (TYPE: TEXT)

برای ارسال TEXT می‌بایست جدول زیر شامل مقدار باشد:

جدول۶: اجزای پیام، اگر پیام از نوع TEXTباشد

نمونهنوع دادهداده
۱userStringto
۲“salam”Stringbody
۳TEXTTEXTtype

مثال

نوع پیام فایل (TYPE: FILE)

برای ارسال FILE می‌بایست جدول زیر شامل مقدار باشد:

جدول ۷: اجزای پیام، اگر پیام از نوع FILE باشد

نمونهنوع دادهداده
۱userStringto
۲“salam”Stringbody
۳FILEFILEtype
۴“user”StringfileName
۵IMAGE or VIDEO or …IMAGE , VIDEO , GIF , PUSH_TO_TALK , ATTACHMENTfileType
۶“http://url”StringfileUrl
۷123.456DoublefileSize

در صورت انتخاب یکی از fileType‌ ها شما می‌بایست جدول مربوط به آن را نیز در کنار جدول ۷ ارسال کنید.

نوع پیام فایل حاوی عکس (fileType: IMAGE) یا تصویر متحرک (fileType: GIF)

جدول ۸: اجزای پیام، اگر فایل از نوع IMAGE یا GIF باشد

نمونهنوع دادهداده
۱“http://image.png”StringthumbnailUrl
۲120.2DoubleimageWidth
۳250.6DoubleimageHeight

مثال

نوع پیام فایل حاوی ویدئو (fileType: VIDEO)

جدول ۹: اجزای پیام، اگر فایل از نوع VIDEO باشد

نمونهنوع دادهداده
۱720000StringfileDuration
۲“http://video.png”StringthumbnailUrl
۳120.0DoublethumbnailWidth
۴250.6DoublethumbnailHeight

مثال

نوع پیام فایل حاوی صدای ضبط شده (fileType: PUSH_TO_TALK)

جدول ۱۰: اجزای پیام، اگر فایل از نوع PUSH_TO_TALK باشد

نمونهنوع دادهداده
720000DoublefileDuration

مثال

نوع پیام فایل حاوی دیگر فرمت های مجاز (fileType: ATTACHMENT)

جدول ۱۰: اجزای پیام، اگر فایل از نوع PUSH_TO_TALK باشد

مثال

نوع پیام مکان (TYPE: LOCATION)

برای ارسال LOCATION می‌بایست جدول زیر شامل مقدار باشد:

جدول ۱۲: اجزای پیام، اگر پیام از نوع LOCATION باشد

نمونهنوع دادهداده
۱userStringto
۲LOCATIONLOCATIONtype
۳35.6892Doublelatitude
۴51.3890Doublelongitude

مثال

نوع پیام تغییر کیبورد (TYPE: CHANGE)

برای ارسال KEYBOARD_CHANGE می‌بایست جدول زیر شامل مقدار باشد:

جدول ۱۳: اجزای پیام، اگر پیام از نوع CHANGE باشد

نمونهنوع دادهداده
۱userStringto
۲CHANGECHANGEtype
۳
[[{"command":"1.1","text": "row 1 , column 1"}, {"command":"1.2",]]>"text": "row 1 , column 2"}]]
آرایه ی دو بعدی از نوع CustomKeykeyboard
  • این فیلد زمانی مورد استفاده قرار میگیرد که شما بدون ارسال پیام متنی، فایلی و موقعیت جغرافیایی، قصد تنها تعویض کیبورد را دارید.

مثال

کیبورد سفارشی (CUSTOM KEYBOARD)

برای ارسال کیبورد شما می‌بایست در پیام ارسالی به همراه فیلد‌های ذکر شده در جدول ۶، ۷ یا ۱۲ ، فیلد keyboard را نیز قرار دهید.

فیلد کیبورد از نوع JSON بوده و شامل یک آرایه ی دو بعدی از نوع CustomKey می‌باشد. بعد اول شامل سطر و بعد دوم مشخص کننده ی ستون می‌باشد.

جدول 14: اجزای پیام اگر شامل فیلد Keyboard باشد

نمونهنوع دادهداده
۱keyboard

کلاس CustomKey

این داده نیز از نوع JSON بوده و مشخص کننده ی مقدار نمایشی به کاربر و مقدار بازگردانده شده از سمت کلاینت به بات می‌باشد.

جدول ۱۴.۱: اجزای فیلد CustomKey در keyboard

نوع دادهمقداروضعیتتوضیح
۱textStringNot NULLداده ای که مقدار آن برای کاربر نمایش داده می‌شود .
۲commandStringNot NULLداده ای که مقدار آن در صورت کلیک کردن بر روی دکمه ی آن در کلاینت برای شما فرستاده می‌شود.

مثال

نمونه‌ی خروجی مشاهده شده توسط کاربر:

Row1,column2Row1,column1
Row2,column2Row2,column1
Row3,column3Row3,column2Row3,column1
  • نکته ۱: در صورت عدم ارسال فیلد keyboard، در صورت موجود بودن کیبورد در پیام قبلی، همان کیبورد برای پیام جدید شما نیز نمایش داده خواهد شد.
  • نکته ۲: در صورت ارسال کیبورد و خالی بودن مقدار آن، کیبوردی به کاربر نمایش داده نمی‌شود.

 

 

 

ارسال فایل به سرور :

توسعه‌دهندگان برای ارسال فایل به کاربران می‌بایست به این طریق ارتباط خود را برقرار کنند:

مقدار TOKEN در ابتدای ثبت نام بات به شما داده شده است.

شما می‌بایست فایل مورد نظر را به صورت MultiPart با کلید واژه ی file برای سرور ارسال کنید. در صورت موفقیت امیز بودن مقدار http status برگشتی 200 می‌باشد. و پیامی در قالب JSON به شما ارسال می‌شود که شامل url فایل شما می‌باشد.

نمونه درخواست ارسال فایل با استفاده از curl:

جدول ۱۶: اجزای پیام دریافتی در پاسخ به درخواست آپلود فایل

نمونهنوع دادهداده
۱… hlrwMiCwwkJvSN9wuCQ4a1FL2LaAg0SXdAkNStringfileUrl
۲OKStringresultMessage
۳200IntegerresultCode

مثال

 

 

 

دریافت فایل آپلود شده :

توسعه‌دهندگان برای دریافت فایل می‌بایست به این طریق ارتباط خود را برقرار کنند:

مقدار TOKEN در ابتدای ثبت نام بات به شما داده شده است.

شما می‌بایست fileUrl خود را در انتهای درخواست http خود قرار دهید و مانند نمونه‌ی بالا برای ما ارسال کنید.

مثال

 

 

 

کتابخانه ها در ساخت ربات سروش پلاس :

شما می‌توانید با استفاده از کتابخانه‌های موجود بر روی بستر بات سروش پلاس، فرآیند توسعه‌ی بات خود را سریعتر کرده و آن را بهبود ببخشید.

کتابخانه‌ی php:

کتابخانه‌ی python:

 

 

 

لینک کوتاه مطلب : https://a4fran3.ir/?p=16823

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن