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

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

استفاده از api تلگرام در تله بات
توجه کنید
  • تله بات دیگر آپدیت نمی‌شود و آخرین آپدیت در شهریور ماه سال 94 صورت گرفته است! ولی شاید نرم افزار مشابهی در ماه‌های آینده با تغییرات انبوهی منتشر کنیم که در حال حاظر به دلیل مسدود شدن تلگرام، بلاتکلیف است.
  • تله بات همچنان کار می‌کند؛ اما مشکلی که وجود دارد این است که چون نرم‌افزار در گذشته توسعه داده شده؛ در نسخه‌های اندروید مارشمالو به بعد باید دسترسی‌ها به صورت دستی از تنظیمات برنامه داده شود.
  • ما دیگر این نسخه را پشتیبانی نمی‌کنیم و پلاگین جدیدی برای آن نمی‌نویسیم؛ نظرات این پست نیز بسته شده است.
  • تله بات روی هیچ سروری ربات شما را پیاده‌سازی نمی‌کند و ربات روی گوشی شما فعال خواهد شد و وابسته به اینترنت شما می‌باشد.
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_SD String مسیر دایرکتوری SD کارت
DIR_PLUGINS String مسیر دایرکتوری پلاگین ها
FILE_SCRIPT_MAIN String آدرس دقیق فایل اسکریپت مرکزی
CONNECTION int مقدار Connection Timeout پیش فرض
SOCKET int مقدار Socket Timeout پیش فرض

 

متدها ورودی خروجی توضیح
getPref ندارد SharedPreferences آبجکت SharedPreferences پیش فرضی را برمی گرداند.
getContext ندارد Context آبجکت Context مربوط به اپلیکیشن را برمی گرداند.
getToken ندارد String توکن رباتی که در تله بات آنلاین شده است را برمی گرداند.
getMyUsername ندارد String نام کاربری رباتی که در تله بات آنلاین شده است را بر میگرداند.
getMyId ندارد String آیدی رباتی که در تله بات آنلاین شده است را بر می گرداند.
getMyFirstname ندارد String نام رباتی که در تله بات آنلاین شده است را بر می گرداند.
runScript Update update, String code, String function, Object[] params Object برای اجرای یک کد
update: آبجکت آپدیت
code: کدی که قرار است پردازش شود.
function: تابعی از کد که قرار است اجرا شود.
params: ورودی های تابع در آرایه ای از آبجکت ها، مقدار null برای هیچ
runPluginMain Update update, String pluginName, String active_plugin int اجرای یک پلاگین از تابع main آن
update: آبجکت آپدیت
pluginName: نام پلاگین بدون فرمت .js
active_plugin: نام پلاگین فعال
runPluginOnActive Update update, String pluginName int اجرای پلاگین از تابع onActive آن
runPluginFunc Update update, String pluginName, String funcName, Object[] params Object اجرای پلاگین از تابع دلخواه آن

متدهای 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 می باشد یعنی پیش فرض خود را اجرا کند.

setDisableWebPagePreview Disables 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 قبلا توضیح داده شده است.
setFoursquareId Foursquare 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
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
setOffset Sequential number of the first photo to be returned. By default, all photos are returned.
یک Integer گرفتهدر وردی می گیرد.
مقدار پیش فرض null هست.
setLimit Limits 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
تایین می کند که در زمان گرفته شدن نتیجه چه اتفاقی بیفتد
در انتها به معرفی و نحوه پیاده سازی این ها خواهیم پرداخت.
setOffset Sequential number of the first photo to be returned. By default, all photos are returned.
یک Integer در وردی می گیرد.
setLimit Limits 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 دریافت می شود.

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


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

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

تبلیغات

پاسخ دهید

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

نظرات ثبت شده بدون دیدگاه