تـبلیغـــاتــــ

فرادرس

استفاده از کتابخانه API تله بات

تله بات > فول کده
استفاده از api تلگرام در تله بات
نوشته شده توسط هادی اکبرزاده

API تله بات فعلا به صورت کامل توضیح داده نشده است

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


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

این کتابخانه شامل زیر پکیج هایی نیز می باشد که می توانید در زیر مشاهده کنید.
com.fullkade.core.types
com.fullkade.core.methods
com.fullkade.core.db


پکیج اصلی com.fullkade.core

✋کلاس Bot:

برای این که بتوانید یک آبجکت بات جدید علاوه بر باتی که با آن آنلاین شده اید بسازید باید از این کلاس استفاده کنید، ورودی های متد سازنده این کلاس به شرح زیر می باشند:

ورودی های متد سازندهتوضیح
tokenتوکن ربات که از نوع String می باشد.
socketTimeOutمقدار TB.SOCKET را درصورتی که درباره Socket Timeout اطلاعاتی ندارید وارد کنید.
connectionTimeOutمقدار TB.CONNECTION را در صورتی که درباره Connection Timeout اطلاعاتی ندارید وارد کنید.

متدهاتوضیح
getTokenتوکن را بر می گرداند.
ورودی ندارد.
خروجی از نوع String خود جاوا می باشد.
getBaseUrlلینک اصلی برای اجرای متدهای تلگرام را بر می گرداند.
به آن نیازی نخواهید داشت.
ورودی ندارد.
خروجی از نوع String خود جاوا می باشد.
getSocketTimeOutمقدار SocketTimeOut ست شده را برمیگرداند
ورودی ندارد.
حروجی از نوع int می باشد.
getConnectionTimeOutمقدار ConnectionTimeOut ست شده را بر میرگداند.
ورودی ندارد.
خروجی از نوع int می باشد.

?نکته: این آبجکت به خودی خود کاری نمی کند و فقط در کلاس هایی که در زیر پکیج com.fullkade.core.methods قرار دارند استفاده می شود.
?نکته: این آبجکت ورودی متد سازنده ی تمامی کلاس های زیر پکیج com.fullkade.core.methods می باشد.
?نکته: برای گرفتن آبجکت رباتی که در تله بات آنلاین می باشد از کلاس  TB استفاده می کنیم و توسط متد getBot آن را می گیریم.

✋کلاس UpdateHelper:

کلاسی که به شما در پردازش آبجکت update کمک زیادی می کند. نیازی به ساخت آبجکتی از این کلاس نیست، زیرا تمامی متدهای آن static می باشند.

متد getStartWith:
این متد برای این که بفهمید دستور start/ از طرف چه مقداری استارت شده است، مورد استفاده قرار می گیرد. اگر پیام از نوع TEXT نبوده و یا با استارت شروع نشود مقدار null برگردانده می شود. ولی اگر مقداری داشاته یا نداشته باشد، آن مقدار برگردانده می شود که می تواند خالی نیز باشد. اطلاعات بیشتر در مورد قانون start با مقدار خاص در قسمت Chat ها می باشد.

✋کلاس KeyboardHelper:

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

مثالی از روش استفاده از این کلاس در پلاگین “تشخیص همسر آینده” وجود دارد.

✋کلاس TB:

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

فیلدهانوعتوضیح
DIR_SDStringمسیر دایرکتوری SD کارت
DIR_PLUGINSStringمسیر دایرکتوری پلاگین ها
FILE_SCRIPT_MAINStringآدرس دقیق فایل اسکریپت مرکزی
CONNECTIONintمقدار Connection Timeout پیش فرض
SOCKETintمقدار Socket Timeout پیش فرض
متدهاورودیخروجیتوضیح
getPrefنداردSharedPreferencesآبجکت SharedPreferences پیش فرضی را برمی گرداند.
Saving Key-Value Sets
getContextنداردContextآبجکت Context مربوط به اپلیکیشن را برمی گرداند.
getTokenنداردStringتوکن رباتی که در تله بات آنلاین شده است را برمی گرداند.
getMyUsernameنداردStringنام کاربری رباتی که در تله بات آنلاین شده است را بر میگرداند.
getMyIdنداردStringآیدی رباتی که در تله بات آنلاین شده است را بر می گرداند.
getMyFirstnameنداردStringنام رباتی که در تله بات آنلاین شده است را بر می گرداند.
runScriptUpdate update, String code, String function, Object[] paramsObjectبرای اجرای یک کد
update: آبجکت آپدیت
code: کدی که قرار است پردازش شود.
function: تابعی از کد که قرار است اجرا شود.
params: ورودی های تابع در آرایه ای از آبجکت ها، مقدار null برای هیچ
runPluginMainUpdate update, String pluginName, String active_pluginintاجرای یک پلاگین از تابع main آن
update: آبجکت آپدیت
pluginName: نام پلاگین بدون فرمت .js
active_plugin: نام پلاگین فعال
runPluginOnActiveUpdate update, String pluginNameintاجرای پلاگین از تابع onActive آن
runPluginFuncUpdate update, String pluginName, String funcName, Object[] paramsObjectاجرای پلاگین از تابع دلخواه آن

متدهای do قسمت های مختلف تله بات را اجرا می کنند، در این اجرا، فعال بودن و نبودن گزینه ها نیز اهمیت دارد، هم چنین خروجی های boolean، مقدار true را در صورت اجرای موفق بر می گردانند.

متدهای doخروجیتوضیح
doCancel (update)booleanآیا این آپدیت می خواهد پلاگین را لغو کند؟
و اگر می خواهد، پس این کار را انجام داده و مقدار true برگردانده می شود.
doExternalPlugins (update)intقسمت پلاگین های خارجی
مقدار -1 درصورت وجود خطا
در آخرین پلاگین اجرا شده
doPluginUrlEye (update)booleanقسمت پلاگین تشخیص لینک
doInternalPlugins (update)booleanقسمت پلاگین های داخلی پی وی
doText (update)intقسمت مشابه و جستجو و پیام پیش فرض
doNewChatMember (update)booleanقسمت عضو جدید گروه
doLeftChatMember (update)booleanقسمت لفت دادن و اخراج شدن
doPhoto (update)booleanقسمت دریافت عکس
doDocument (update)booleanقسمت دریافت سند
doSticker (update)booleanقسمت دریافت استیکر
doVoice(update)booleanقسمت دریافت وبیس
doNewChatTitle (update)booleanقسمت تغییر عنوان گروه
doNewChatPhoto (update)booleanقسمت تغییر عکس گروه
doContact (update)booleanقسمت دریافت مخاطب
doLocation (update)booleanقوسمت دریافت لوکیشن
doDef (update)booleanقسمت جواب پیش فرض
doEquals (update)booleanقسمت پیام مشابه

ادامه توضیحات در حال آماده سازی …


زیر پکیج com.fullkade.core.db

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

اداهه توضیحات در پست کار با دیتابیس تله بات وجود دارد. (به زودی)


زیر پکیج com.fullkade.core.types

کلاس های موجود در داخل این پکیج همان types هایی هستند که در مستندات تلگرام وجود دارند.
دقیقا با همان اسم و همان فیلدها …
پس دیگر به توضیح آن نمی پردازیم و تنها نکته هایی که باید بدانید:
⬅️ در Type های کتابخانه تله بات برای آیدی چت، از نوع رشته یا String استفاده شده و با این که آیدی چت یک عدد می باشد، ولی داخل رشته ذخیره می شود.
⬅️ برای نوع Array of Array of در Types ها، ما از ArraList جاوا در تله بات استفاده کرده ایم.

توضیحات بیشتر در حال آماده سازی …


زیرپکیج com.fullkade.core.methods

این پکیج نیز شامل متدهای API تلگرام می باشد، از قبیل متد ارسال پیام و فوروارد پیام و  … که در این بخش از مستندات تلگرام قابل مشاهده می باشند …
توجه کنید که این زیرپکیج در حال حاظر برای حالت Inline و آپلود مستقیم فایل پیاده نشده است.
?نکته: حالت Inline در حال حاظر فقط قسمت کیبورد آن پشتیبانی می شود.

متدهای سازنده کلاس ها:

تمامی متدهای سازنده کلاس های مربوط به methods تلگرام، در ورودی خود پارامتر Bot دریافت می کنند.
و اما چه کلاس هایی در این زیر پکیج حضور دارند؟ در واقع برای هر متدی یک کلاس ساخته شده است… ولی ما به معرفی کلاس هایی که فعلا تکمیل نشده اند نخواهیم پرداخت…
?نکته: هر کلاس در متد سازنده خود یک آبجکت Bot دریافت می کند که می توانید برای ربات فعلی خود تله بات، از متد getBot کلاس TB استفاده کنید.

تابع tryMode:

تمامی کلاس های مختص متدهای تلگرام، دارای متد tryMode با خروجی آبجکت خود کلاس می باشند، و از این متد برای این استفاده می شود که تایین کنیم در صورت موفق نبودن به انجام فرآیند بر اثر مشکل در اتصال اینترنت دوباره تلاش کند یا خیر؟
در صورت ارسال پارامتر true، تلاشی نمی کند و در صورت ارسال پارامتر false به داخل آن، دوباره تلاش خواهد کرد…
به صورت پیش فرض true می باشد…
البته در صورتی که اینترفیس آبجکت ساخته شده از روی کلاس تایین شود، این کار در آبجکت اینترفیس تایین خواهد شد که آن را توضیح خواهیم داد.

خروجی متدهای کلاس ها:

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

✋کلاس GetMe برای متد getMe

برای تست کردن این که آیا توکن درست است یا خیر، به کار می رود. هم چنین برای گرفتن نام کاربری ربات و نام ربات و آیدی چت ربات نیز استفاده می شود.

متدهاتوضیح
setOnGetMeListnerبا گرفتن آبجکتی از اینترفیس OnGetMeListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
startفرآیند متد getMe را شروع می کند.
ورودی ندارد.
نتیجه فرآیند در صورت تنظیم شدن OnGetMeListner، به داخل آن ارسال خواهد شد.

✋کلاس SendMessage برای متد sendMessage

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

متدهاتوضیح
setOnMessageListnerبا گرفتن آبجکتی از اینترفیس OnMessageListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
setParseModeتایین می کند که متن ارسالی پارس شود یا خیر؟

یک ورودی از نوع String دارد.
و این String می تواند مقدار Markdown و HTML را در حال حاظر قبول می کند.
روند کار دو مقدار در این پست از مستندات تلگرام به طور کامل توضیح داده شده است.
مقدار پیش فرض آن null می باشد یعنی پیش فرض خود را اجرا کند.
setDisableWebPagePreviewDisables link previews for links in this message
پارامتر Boolean جاوا می گیرد.
مقدار پیش فرض آن null می باشد یعنی پیش فرض خود را اجرا کند
setDisableNotificationتایین می کند که با ارسال پیام، درسمت کلاینت برای کاربر نوتیفیکیشن داده شود یا خیر.
پارامتر Boolean جاوا می گیرد.
مقدار پیش فرض آن null می باشد یعنی پیش فرض خود را اجرا کند.
setReplyToMessageIdتایین می کند که برای چه پیامی ریپلای شود
پارامتر Long جاوا می گیرد.
مقدار پیش فرض آن null می باشد یعنی پیش فرض خود را اجرا کند.
setReplyMarkupکیبورد را تایین می کند.
این متد دارای سه override می باشد و سه ورودی متفاوت می تواند بگیرد.
1- آبجکتی از جنس InlineKeyboardMarkup
کیبورد دکمه ای
2- آبجکتی از جنس ReplyKeyboardMarkup
کیبورد زیر پیام
3- آبجکتی از جنس
ReplyKeyboardHide
کیبورد مخفی
این سه آبجکت در typoes ها وجود دارند.
دقت کنید تنها می توانید یکی از این سه حالات را تایین کنید.
setKeyboardJSONاین هم برای تایین کیبورد استفاده می شود با این تفاوت که در ورودی خود String گرفته و این String باستی جیسون کیبورد باشد.
همچنین مقدار پیش فرض جیسون null می باشد.مقدار null به معنی حذف کیبورد نیست، زیرا ممکن است قبلا کیبوردی ست شده باشد و در پیام بعدی کیبوردی ست نشود و همان کیبورد قبلی باقی بماند.
sendارسال پیام
دو پارامتر ورودی می گیرد.
ورودی اول chat_id: یک String بوده که همان آیدی چت می باشد.
ورودی دوم text: نیز String بوده و متن پیام می باشد.نتیجه فرآیند در صورت تنظیم شدن OnMessageListner، به داخل آن ارسال خواهد شد.

✋کلاس ForwardMessage برای متد forwardMessage

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

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setDisableNotificationقبلا توضیح داده شده است.
sendبرای فوروارد کردن استفاده می شود.
سه پارامتر ورودی می گیرد.
ورودی اول chat_id: آیدی چتی که می خواهیم پیامی را به آن فوروارد نماییم.
از نوع String می باشد.
ورودی دوم from_chat_id: آیدی چتی که می خواهیم پیامی را از آن فوروارد نماییم.
از نوع String می باشد.
ورودی سوم message_id: آیدی پیامی می باشد که می خواهیم آن را فوروارد نماییم.
از نوع داده پایه long جاوا می باشد.
نتیجه فرآیند در صورت تنظیم شدن OnMessageListner، به داخل آن ارسال خواهد شد.

✋کلاس SendPhoto برای متد sendPhoto

برای ارسال یک Photo به کار می رود و در صورت ارسال موفق، پیام ارسال شده از خود ربات را در قالب یک آبجکت Message برمی گرداند.

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setDisableNotificationقبلا توضیح داده شده است.
setReplyToMessageIdقبلا توضیح داده شده است.
setReplyMarkupقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
setCaptionزیر نویس را تایین می کند.
یک ورودی String می گیرد
پارامتر ورودی بایستی از 0 تا 2000 کاراکتر باشد.
مقدار پیش فرض آن null می باشد یعنی زیر نویسی ندارد.
sendبرای ارسال به کار می رود.
در حال حاظر امکان ارسال مستقیم با استفاده از دادن مسیر فایل وجود ندارد.
و فقط می توان با استفاده از آیدی فایلی که ربات دریافت کرده است، آن را ارسال نمود.
دو پارامتر ورودی می گیرد.
پارامتر اول chat_id: با گرفتن آیدی چت، تایین می کند که به کدام چت ارسال شود.
از نوع String می باشد.
پارامتر دوم file_id: با گرفتن آیدی فایل، تایین می کند که کدام فایل ارسال شود.
اطلاعات بیشتری درباره ارسال فایل با استفاده از آیدی فایل در داکیومنت خود تلگرام وجود دارد.
نتیجه فرآیند در صورت تنظیم شدن OnMessageListner، به داخل آن ارسال خواهد شد.

✋کلاس SendAudio برای متد sendAudio

برای ارسال یک Audio به کار می رود، در صورت ارسال موفق، پیام ارسال شده از خود ربات را در قالب یک آبجکت Message برمی گرداند.

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setCaptionقبلا توضیح داده شده است.
setDisableNotificationقبلا توضیح داده شده است.
setReplyToMessageIdقبلا توضیح داده شده است.
setReplyMarkupقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
setDurationزمان Audio را برحسب ثانیه وارد می کنید.
ورودی از جنس Long جاوا می باشد.
مقدار پیش فرض آن null می باشد یعنی پیش فرض خود را اجرا کند.
setPerformerیک رشته را به عنوان Performer قبول می کند.
مقدار پیش فرض آن null می باشد یعنی پیش فرض خود را اجرا کند.
setTitleیک رشته را به عنوان عنوان نام Track قبول می کند.
مقدار پیش فرض آن null می باشد یعنی پیش فرض خود را اجرا کند.
sendتوضیح SendPhoto را مطالعه نمایید.

✋کلاس SendDocument برای متد sendDocument

برای ارسال یک Document به کار می رود، در صورت ارسال موفق، پیام ارسال شده از خود ربات را در قالب یک آبجکت Message برمی گرداند.

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setCaptionقبلا توضیح داده شده است.
setDisableNotificationقبلا توضیح داده شده است.
setReplyToMessageIdقبلا توضیح داده شده است.
setReplyMarkupقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
sendقبلا توضیح داده شده است.

✋کلاس SendSticker برای متد sendSticker

برای ارسال یک Sticker به کار می رود، در صورت ارسال موفق، پیام ارسال شده از خود ربات را در قالب یک آبجکت Message برمی گرداند.

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setDisableNotificationقبلا توضیح داده شده است.
setReplyToMessageIdقبلا توضیح داده شده است.
setReplyMarkupقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
sendقبلا توضیح داده شده است.

✋ کلاس SendVideo برای متد sendVideo

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

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setDisableNotificationقبلا توضیح داده شده است.
setReplyToMessageIdقبلا توضیح داده شده است.
setCaptionقبلا توضیح داده شده است.
setReplyMarkupقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
setDurationقبلا توضیح داده شده است.
setWidthعرض ویدیو را مشخص می کند
یک ورودی از نوع Integer جاوا
مقدار پیش فرض آن null می باشد یعنی پیش فرض خود را اجرا کند.
setHeightارتفاع ویدیو را مشخص می کند.
یک ورودی از نوع Integer جاوا
مقدار پیش فرض آن null می باشد یعنی پیش فرض خود را اجرا کند.
sendتوضیح SendPhoto را مطالعه نمایید.

✋ کلاس SendVoice برای متد SendVoice

برای ارسال یک Voice به کار می رود، در صورت ارسال موفق، پیام ارسال شده از خود ربات را در قالب یک آبجکت Message برمی گرداند.

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setDisableNotificationقبلا توضیح داده شده است.
setReplyToMessageIdقبلا توضیح داده شده است.
setReplyMarkupقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
setDurationقبلا توضیح داده شده است.
sendتوضیح SendPhoto را مطالعه نمایید.

✋ کلاس SendLocation برای متد sendLocation

برای ارسال یک Location به کار می رود، در صورت ارسال موفق، پیام ارسال شده از خود ربات را در قالب یک آبجکت Message برمی گرداند.

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setDisableNotificationقبلا توضیح داده شده است.
setReplyToMessageIdقبلا توضیح داده شده است.
setReplyMarkupقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
startارسال Location را شروع می کند.
سه پارامتر از ما می گیرد.
1- پارامتر اول chat_id: آیدی چتی که میخوایم به اون ارسال کنیم.
از نوع String می باشد.
2- پارامتر دوم latitude: همانطور که از نامش پیداست مختصات latitude را برحسب Float وارد می کنید.
3- پارامتر دوم longitude: همانطور که از نامش پیداست مختصات longitude را برحسب Float وارد می کنید.
نتیجه فرآیند در صورت تنظیم شدن OnMessageListner، به داخل آن ارسال خواهد شد.

✋ کلاس SendVenue برای متد sendVenue

برای ارسال یک Venue به کار می رود، در صورت ارسال موفق، پیام ارسال شده از خود ربات را در قالب یک آبجکت Message برمی گرداند.

متدهاتوضیح
tryModeقبلا توضیح داده شده است.
setOnMessageListnerقبلا توضیح داده شده است.
setDisableNotificationقبلا توضیح داده شده است.
setReplyMarkupقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
setFoursquareIdFoursquare identifier of the venue
دارای یک پارامتر ورودی foursquare_id از نوع رشته می باشد.
sendارسال Venue را شروع می کند.
چهار پارامتر از ما می گیرد.
1- پارامتر اول chat_id: آیدی چتی که میخوایم به اون ارسال کنیم. از نوع String می باشد.
2- پارامتر دوم latitude: همانطور که از نامش پیداست مختصات latitude را برحسب Float وارد می کنید.
3- پارامتر سوم longitude: همانطور که از نامش پیداست مختصات longitude را برحسب Float وارد می کنید.
4- پارامتر چهارم address: همانطور که از نامش پیداست آدرس Venue را برحسب رشته شامل می شود.
نتیجه فرآیند در صورت تنظیم شدن OnMessageListner، به داخل آن ارسال خواهد شد.

✋کلاس SendContact برای متد sendContact

برای ارسال یک Contact به کار می رود، در صورت ارسال موفق، پیام ارسال شده از خود ربات را در قالب یک آبجکت Message برمی گرداند.

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setDisableNotificationقبلا توضیح داده شده است.
setReplyToMessageIdقبلا توضیح داده شده است.
setReplyMarkupقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
setLastNameبرای تنظیم نام خانوادگی شماره
یک ورودی String می گیرد.
sendارسال Contact را شروع می کند.
سه پارامتر از ما می گیرد.
1- پارامتر اول chat_id: آیدی چتی که میخوایم به اون ارسال کنیم. از نوع String می باشد.
2- پارامتر دوم phone_number: همانطور که از نامش پیداست شماره تلفن را می گیرد.
از نوع String می باشد.
3- پارامتر دوم first_name: همانطور که از نامش پیداست نام دارنده شماره را می گیرد.
از نوع String می باشد.
نتیجه فرآیند در صورت تنظیم شدن OnMessageListner، به داخل آن ارسال خواهد شد.

✋ کلاس SendChatAction برای متد sendChatAction

برای ارسال یک رویداد به کار می رود، از قبیل این که در حال تایپ است، در حال ارسال پیام است و … استفاده می شود.

متدهاتوضیح
setOnSuccessListnerبا گرفتن آبجکتی از اینترفیس OnSuccessListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
sendارسال اکشن مورد نظر را شروع می کند.
دو پارامتر ورودی از ما می گیرد.
1- پارامتر اول chat_id: آیدی چتی که میخوایم به اون ارسال کنیم. از نوع String می باشد.
2- پارامتر دوم action: اکشن مورد نظر را مشخص می کند و از نوع String می باشد.
مقدارهایی که می گیرد به شرح زیر هستند:
typing
upload_photo
record_video
upload_video
record_audio
upload_audio
upload_document
find_location
نتیجه فرآیند در صورت تنظیم شدن OnSuccessListner، به داخل آن ارسال خواهد شد.

✋ کلاس GetUserProfilePhotos برای متد getUserProfilePhotos

برای گرفتن تصاویر پرفایل به کار می رود، در صورت دریافت آبجکتی از جنس  UserProfilePhotos ساخته شده و به لیستنر تنظیم شده ارسال می شود.

متدهاتوضیح
setOnUserProfilePhotosListnerبا گرفتن آبجکتی از اینترفیس OnUserProfilePhotosListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
setOffsetSequential number of the first photo to be returned. By default, all photos are returned.
یک Integer گرفتهدر وردی می گیرد.
مقدار پیش فرض null هست.
setLimitLimits the number of photos to be retrieved. Values between 1—100 are accepted. Defaults to 100.
یک Integer در ورودی از ما می گیرد.
مقدار پیش فرض null هست.
startشروع به گرفتن تصاویر می کند.
یک ورودی user_id از نوع String از ما می گیرد.
یعنی آیدی چت فلان کاربر.
نتیجه فرآیند در صورت تنظیم شدن OnUserProfilePhotosListner، به داخل آن ارسال خواهد شد.

✋ کلاس GetFile برای متد getFile

برای گرفتن اطلاعات یک فایل استفاده می شود.
در صورت موفقیت آبجکتی از جنس File به داخل لیستنر فرستاده می شود.
یک فایل برای ربات دارای لینکی به صورت زیر می باشد:

https://api.telegram.org/file/bot<token>/<file_path>

در قسمت token و file_path، مقدارهای مورد نظر را از آبجکت File می گیریم.

متدهاتوضیح
setOnFileListnerبا گرفتن آبجکتی از اینترفیس OnFileListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
setOffsetSequential number of the first photo to be returned. By default, all photos are returned.
یک Integer در وردی می گیرد.
setLimitLimits the number of photos to be retrieved. Values between 1—100 are accepted. Defaults to 100.
یک Integer در ورودی از ما می گیرد.
startشروع به گرفتن اطلاعات یک فایل می کند.
یک ورودی String از ما می گیرد.
که آیدی فایل را شامل می شود.
file_id را می توانید در آبجکت هابی از قبیل Video Photo و ... پیدا کنید.
نتیجه فرآیند در صورت تنظیم شدن OnFileListner، به داخل آن ارسال خواهد شد.

✋ کلاس KickChatMember برای متد kickChatMember

برای کیک کردن یک عضو به کار می رود… ربات بایستی ادمین گروه باشد و همچنین اگر گروه عادی باشد باید گزینه All Members Are Admins غیر فعال باشد …

متدهاتوضیح
setOnSuccessListnerبا گرفتن آبجکتی از اینترفیس OnSuccessListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
kickشروع به کیک کردن.
دو ورودی می گیرد.
1- پارامتر اول chat_id: آیدی عددی چتی که میخواهیم کاربری را از آن کیک کنیم.
از نوع رشته می باشد.
1- پارامتر دوم user_id: آیدی عددی کاربری که می خواهیم آن را از چت کیک نماییم
از نوع رشته می باشد.
نتیجه فرآیند در صورت تنظیم شدن OnSuccessListner، به داخل آن ارسال خواهد شد.

✋ کلاس LeaveChat برای متد leaveChat

برای خروج از یک چت به کار می رود.

متدهاتوضیح
setOnSuccessListnerبا گرفتن آبجکتی از اینترفیس OnSuccessListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
leaveشروع به لفت دادن.
یک ورودی chat_id می گیرد.
آیدی عددی چتی که میخواهیم رباتمان از آن لفت دهد.
نتیجه فرآیند در صورت تنظیم شدن OnSuccessListner، به داخل آن ارسال خواهد شد.

✋ کلاس UnbanChatMember برای متد unbanChatMember

برای از بن دراوردن یک عضو استفاده می شود.

متدهاتوضیح
setOnSuccessListnerبا گرفتن آبجکتی از اینترفیس OnSuccessListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
unbanشروع به آن بن کردن می کند.
دو ورودی می گیرد.
1- پارامتر اول chat_id: آیدی عددی چتی که میخواهیم کاربری را در آن، ان بن نماییم.
از نوع رشته می باشد.
1- پارامتر دوم user_id: آیدی عددی کاربری که می خواهیم آن رادر آن گروه آن بن نماییم.
از نوع رشته می باشد.
نتیجه فرآیند در صورت تنظیم شدن OnSuccessListner، به داخل آن ارسال خواهد شد.

✋ کلاس GetChat برای متد getChat

برای گرفتن اطلاعات یک چت استفاده می شود و نتیحه در صورت تایین شدن اینترفیس، در قالب آبجکت Chat دریافت می شود.

متدهاتوضیح
setOnChatListnerبا گرفتن آبجکتی از اینترفیس OnChatListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
startشروع به گرفتن اطلاعات چت می کند.
یک ورودی chat_id می گیرد.
آیدی عددی چتی که میخواهیم اطلاعات آن را بگیریم.
نتیجه فرآیند در صورت تنظیم شدن OnChatListner، به داخل آن ارسال خواهد شد.

✋ کلاس GetChatAdministrators برای متد getChatAdministrators

برای گرفتن لیست ادمین های یک چت استفاده می شود. نتیحه در صورت تایین شدن اینترفیس، در قالب ArrayList ای از ChatMember دریافت می شود.

متدهاتوضیح
setOnChatMemberListnerبا گرفتن آبجکتی از اینترفیس OnChatMemberListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
startشروع به گرفتن لیست ادمین ها می کند.
یک ورودی chat_id می گیرد.
آیدی عددی چتی که میخواهیم لیست آدمین های آن را بگیریم.
نتیجه فرآیند در صورت تنظیم شدن OnChatMemberListner، به داخل آن ارسال خواهد شد.

✋ کلاس GetChatMembersCount برای متد getChatMembersCount

برای گرفتن تعداد عضو های یک چت استفاده می شود.

متدهاتوضیح
setOnIntListnerبا گرفتن آبجکتی از اینترفیس OnIntListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
startشروع به گرفتن تعداد کاربران می کند.
یک ورودی chat_id می گیرد.
یعنی آیدی عددی گروه را می گیرد.
نتیجه فرآیند در صورت تنظیم شدن OnIntListner، به داخل آن ارسال خواهد شد.

✋ کلاس GetChatMember برای متد getChatMember

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

متدهاتوضیح
setOnChatMemberListnerبا گرفتن آبجکتی از اینترفیس OnChatMemberListner
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
startشروع به آن گرفتن اطلاعات می کند.
1- پارامتر اول chat_id: آیدی عددی گروه
از نوع String می باشد.
1- پارامتر دوم user_id: آیدی عددی کاربر
از نوع رشته می باشد.
نتیجه فرآیند در صورت تنظیم شدن OnSuccessListner، به داخل آن ارسال خواهد شد.


کلاس های مربوط به متدهای ویرایش

✋ کلاس EditMessageText برای متد editMessageText

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

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setParseModeقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
در این جا کیبورد InlineKeyboardMarkup فقط پشتیبانی می شود.
setReplyMarkupقبلا توضیح داده شده است.
در این جا کیبورد InlineKeyboardMarkup فقط پشتیبانی می شود.
editبرای ویرایش نهایی استفاده می شود.
این متد دو نوع ورودی می گیرد.
نوع اول:
edit(String chat_id, long message_id, String text)
و نوع دوم:
edit(String inline_message_id, String text)
که مورد دوم برای ویرایش حالت inline می باشد.
نتیجه فرآیند در صورت تنظیم شدن OnMessageListner، به داخل آن ارسال خواهد شد.
✋ کلاس EditMessageCaption برای متد editMessageCaption

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

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setCaptionقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
در این جا کیبورد InlineKeyboardMarkup فقط پشتیبانی می شود.
setReplyMarkupقبلا توضیح داده شده است
در این جا کیبورد InlineKeyboardMarkup فقط پشتیبانی می شود..
editبرای شروع فرآینده ویرایش به کار می رود.
این متد دو نوع ورودی متفاوت می گیرد.
نوع اول:
edit(String chat_id, long message_id)
نوع دوم:
edit(String inline_message_id)
که نوع دوم برای حالت inline می باشد.
نتیجه فرآیند در صورت تنظیم شدن OnMessageListner، به داخل آن ارسال خواهد شد.
✋ کلاس EditMessageReplyMarkup برای متد editMessageReplyMarkup

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

متدهاتوضیح
setOnMessageListnerقبلا توضیح داده شده است.
setKeyboardJSONقبلا توضیح داده شده است.
در این جا کیبورد InlineKeyboardMarkup فقط پشتیبانی می شود..
setReplyMarkupقبلا توضیح داده شده است.
در این جا کیبورد InlineKeyboardMarkup فقط پشتیبانی می شود..
editبرای شروع فرآینده ویرایش به کار می رود.
این متد دو نوع ورودی متفاوت می گیرد.
نوع اول:
edit(String chat_id, long message_id)
نوع دوم:
edit(String inline_message_id)
که نوع دوم برای حالت inline می باشد.
نتیجه فرآیند در صورت تنظیم شدن OnMessageListner، به داخل آن ارسال خواهد شد.

استفاده از Interface های سمت جاوا در جاوا اسکریپت

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

✋ انیترفیس OnChatListner

✋ انیترفیس OnChatMemberListner

✋ انیترفیس OnChatMembersListner

✋ انیترفیس OnFileListner

✋ انیترفیس OnGetMeListner

✋ انیترفیس OnIntListner

✋ انیترفیس OnMessageListner

✋ انیترفیس OnSuccessListner

✋ انیترفیس OnUserProfilePhotosListner

◀️ تعریف لیستنر ها در جاوا اسکریپت

برای این که بتونیم اینارو با استفاده از متدهاشون ست کنیم. بایستی آبجکتی مشابه این اینترفیس ها در جاوا اسکریپت ساخته و به داخل متد پاس دهیم.
برای مثال مثد setOnMessageListner آبجکتی از اینترفیس OnMessageListner را می پزیرد که در سمت جاوا بایستی آن را به صورت زیر پیاده کنیم.

حال بایستی این آبجکت را برای مثال در setOnMessageListner آبجکتی از کلاس SendMessage تنظیم کنیم.

◀️مقدار بازگشتی متد onFail:

همانطور که قبلا به متد tryMode اشاره کردیم، در صورت تنظیم شدن لیستنر، دیگر متد tryMode لازم نیست و از خروجی این متد اعلام می کنیم که در صورت مشکل در برقرای اتصال به اینترنت دوباره تلاش کند یا خیر و مقدار False یعتی متوقف نشود پس دوباره تلاش می کند.

◀️مقدار های error_code:

در سایت خود تلگرام، مقدارهای error_code وضیح داده شده است و  descrption های هرکدام هم نوشته شده است که ممکن است بیشتر از یک مورد باشند.می توانید از این آدرس به آن دسترسی داشته باشید.


توضیحات ممکن است، نواقصی را به همراه داشته باشند
چنانچه قسمتی گنگ می باشد، به ما اطلاع دهید تا توضیح کامل تری از آن را قرار دهیم.

3+
کانال تلگرام فول کده

تـبلیغـــاتــــ

فرادرس

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

هادی اکبرزاده

[ مدیر فول کده ]

آیدی من در اینستاگرام : آیدی اینستاگرام

نظر بدهید


نظرات ثبت شده

    نظری برای این پست ارسال نشده ، اولین نفر باشید !!!