Check user subscription

You can check the user's subscription to a channel or group

To check user subscription, use .checkSubscription answer method

.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

app.controller.ts
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!`;
  }
}

Last updated