.checkSubscription answer method takes argument: channel IDs you want to check the user subscription to (...spread)
The bot must be an administrator of the channel/group you want to check the subscription to
Returns true if the user subscribed for all channels
import {
Alert,
Answer,
Controller,
GetAnswer,
Keyboard,
KeyboardTypes,
MessageSend,
OnClick,
OnCommand,
} from 'nestgram';
import { AppService } from './app.service';
@Controller()
export class AppController {
channelLink: string = 'https://t.me/nestgram_ts'
channelId: number = -1001662708678
constructor(private readonly appService: AppService) {}
@OnCommand('start')
helloMessage() {
return new MessageSend(
`Are you subscribed to the channel ${this.channelLink}?`,
new Keyboard(KeyboardTypes.underTheMessage).btn('Yes!', 'check')
);
}
@OnClick('check')
async checkSubscription(@GetAnswer() answer: Answer) {
const subscribed: boolean = await answer.checkSubscription(this.channelId);
if (!subscribed) return new Alert(`You're a liar!`);
return `Well thank you!`;
}
}