MembershipChecker (MCL)
This library is used to verify user membership in other channels and chats. It is also know as MCLib (MCL)
Last updated
This library is used to verify user membership in other channels and chats. It is also know as MCLib (MCL)
Last updated
We have demo bots for MCLib in the Store - BBJoinBot and BBChannelPromotionBot
It is recommended to use this library, since it allows you to make the bot work faster.
Verification methods run in the background so the user does not need to wait for a response from the bot.
Install Library and create /setup
command:
Then go to App > Bot > Admin Panels and fill options:
Please note:
Small checking delay is not good for iterations
One chat (or one channel) require 1 iteration per check
you can turn on "debug info" checkbox for bug searching
You need to define commands in the admin panel. You can define only those commands that you need.
onNeedJoining
user still need to join to any resource
onNeedAllJoining
user still need to join to all resource
onJoining
user just joined to any resource
onAllJoining
user just joined to all resources
onStillJoined
user is still joined to all resources
onError
error callback
Before all command
in @ command:
This method can have much more iterations usage.
You can increase checking delay time for hour and etc for decreasing iterations usage.
Also you can use it only on /start
- but user can leave your channel after joining and bot starting. With @ command it is permanent checking.
We use (chat?.chat_type == "private")
because in group chat (usually) joining checking is not needed.
/onNeedJoining
This callback will be executed if the user has not yet joined or has left after handle()
or check()
methods
This callback will be executed per each channel or chat. For example, if you have 5 not joined chats you will have 5 callbacks
/onJoining
:This callback will be executed if the user just joined after after handle()
or check()
methods
This callback will be executed if the user just joined to any channel
/onAllJoining
:This callback will be executed if the user just joined after after handle()
or check()
methods
This callback will be executed once if the user has joined all channels
This callback will be executed if the user still joined to all channels and chats after check()
method only.
If membership is required to use the bot you can use before all command: @
You can also perform manual check if you need something like "check" button.
Example for /check
command:
It is good to use Cooldown Lib here
User can press button many times. So we can restrict this and save iterations
setup()
Install Admin Panel for Lib
check(options)
Force check memberships.
You can pass any data in options for callbacks (onJoining
, onNeedJoining
, onNeedAllJoining
, onStillJoined
)
+
handle(options)
+
isMember(chat_id)
Returns true if the user has joined all resources. chat_id - can be null (it will be all chats) Before you need to execute handle() or check()
getChats()
Returns all resources (group chats, channels) specified in the Admin Panel
getNotJoinedChats()
Returns all resources (group chats, channels) specified in the panel that the user has not yet joined
All background methods require additional iterations.
Soft check memberships with delay (you can setup delay in Admin Panel). Use this method in @ command You can pass any data in options for callbacks (onJoining and onNeedJoining)