Chat invite links

You can export chat invite link

To export chat invite link, use .exportInviteLink answer/api method

If you need, you can pass chat id you want to export chat invite link as argument (required in Api method)

If you want to know what arguments an API method takes, see the IDE hint

Use this method to generate a new primary invite link for a chat; any previously generated primary link is revoked. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights

Returns the new invite link as string on success

app.controller.ts
import { Controller, OnCommand, GetAnswer, Answer } from 'nestgram';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @OnCommand('admin_export_invite_link')
  async exportInviteLink(@GetAnswer() answer: Answer): Promise<string> {
    return await answer.exportInviteLink();
  }
}

You can create chat invite link using .createInviteLink answer/api method

Argument
Description
Required
1

Optional

2

Chat id you want to export invite link to

Optional. Current chat id by default

If you want to know what arguments an API method takes, see the IDE hint

Returns chat invite link on success

app.controller.ts
import { Controller, OnCommand, IChatInviteLink, GetAnswer, Answer } from 'nestgram';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @OnCommand('admin_create_invite_link')
  async createInviteLink(@GetAnswer() answer: Answer) {
    const inviteLinkInfo: IChatInviteLink = await answer.createInviteLink({ member_limit: 10 });
    return inviteLinkInfo.invite_link;
  }
}

To edit invite link, use Edit class-method and InviteLink class-mark. Or .editInviteLink api method

Edit class-method take arguments:

Argument
Description
Required
1

Invite link you want to edit

Required

2

Options how you want to edit link

Required

If you want to know what arguments an API method takes, see the IDE hint

app.controller.ts
import { Answer, Controller, Edit, GetAnswer, IChatInviteLink, InviteLink, OnCommand } from 'nestgram';
import { AppService } from './app.service';

@Controller()
export class AppController {
  inviteLink: string
  constructor(private readonly appService: AppService) {}

  @OnCommand('start')
  async createInviteLink(@GetAnswer() answer: Answer) {
    const linkInfo: IChatInviteLink = await answer.createInviteLink();
    return this.inviteLink = linkInfo.invite_link;
  }

  @OnCommand('edit')
  editInviteLink() {
    return new Edit(new InviteLink(this.inviteLink, { name: 'New name (edited)' })).next('Edited');
  }
}

We recommend using services to save data

You can revoke invite link using .revokeInviteLink answer/api method

Argument
Description
Required
1

Invite link you want to revoke

Required

2

Chat id in which you want to revoke link

Optional. Current chat id by default

If you want to know what arguments an API method takes, see the IDE hint

Returns chat invite link on success

app.controller.ts
import { Controller, OnCommand, IChatInviteLink, GetAnswer, Answer } from 'nestgram';
import { AppService } from './app.service';

@Controller()
export class AppController {
  inviteLink: string = '';
  constructor(private readonly appService: AppService) {}

  @OnCommand('admin_create_invite_link')
  async createInviteLink(@GetAnswer() answer: Answer) {
    const inviteLinkInfo: IChatInviteLink = await answer.createInviteLink({ member_limit: 10 });
    this.inviteLink = inviteLinkInfo.invite_link;
    return inviteLinkInfo.invite_link;
  }

  @OnCommand('admin_revoke_invite_link')
  async revokeInviteLink(@GetAnswer() answer: Answer) {
    await answer.revokeInviteLink(this.inviteLink);
    return `${this.inviteLink} link revoked`;
  }
}

We recommend using services to save data

Last updated