# Menu button

## Set menu button

You can set menu button using **MenuButton class-method** or `.setMenuButton` **answer/api method**

#### MenuButton class-method or .setMenuButton answer/api method take arguments:

<table><thead><tr><th width="150" data-type="number">Argument</th><th>Description</th><th>Required</th></tr></thead><tbody><tr><td>1</td><td><a href="https://core.telegram.org/bots/api#menubutton">Menu button</a> you want to set</td><td>Optional</td></tr><tr><td>2</td><td>Chat id you want to set menu button to. Pass <code>'_current'</code>  to set menu button for current chat</td><td>Optional</td></tr></tbody></table>

{% hint style="info" %}
If you want to know what arguments an API method takes, see the IDE hint

In **answer method** or **class-method**, you can pass `'_current'` as 2nd argument to set menu button for current chat
{% endhint %}

{% code title="app.controller.ts" %}

```typescript
import { Controller, OnCommand, MenuButton } from 'nestgram';
import { AppService } from './app.service';

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

  @OnCommand('start')
  setMenuButton() {
    return new MenuButton({
      type: 'web_app',
      text: 'Open web app',
      web_app: { url: 'https://youtube.com/' },
    }).next('Menu button updated!');
  }
}
```

{% endcode %}

## Get menu button

To get the menu button, use `.getMenuButton` **answer/api method**

{% hint style="info" %}
.getMenuButton answer method takes argument: chat id you want to get menu button (optional, for all by default). You can pass `'_current'` to get menu button in the current chat

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

{% code title="app.controller.ts" %}

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

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

  @OnCommand('start')
  async getMenuButton(@GetAnswer() answer: Answer) {
    console.log(await answer.getMenuButton());
    return 'Logged to console!';
  }
}
```

{% endcode %}
