--- sidebar_position: 12 --- # Generate keyboard from array of buttons Generates a simple JSON keyboard from an array of buttons for a message or bottom panel *Function FormKeyboardFromButtonArray(Val ButtonArray, Val UnderMessage = False, Val OneByOne = True) Export* | Parameter | CLI option | Type | Destination | |-|-|-|-| | ButtonArray | --buttons | Array of String | Array of buttons | | UnderMessage | --under | Boolean | Keyboard under the message or on the bottom panel | | OneByOne | --column | Boolean | True > buttons are displayed in a column, False > in a row | Returns: String - Keyboard JSON ```bsl title="Code example" ButtonArray = New Array; ButtonArray.Add("Great"); ButtonArray.Add("Ok"); ButtonArray.Add("Bad"); Keyboard = OPI_Telegram.FormKeyboardFromButtonArray(ButtonArray, True, True); ``` ```sh title="CLI command example" oint telegram FormKeyboardFromButtonArray --buttons %buttons% --under %under% --column %column% ``` ```json title="Result" { "inline_keyboard":[ [ { "text":"\u041E\u0442\u043B\u0438\u0447\u043D\u043E", "callback_data":"\u041E\u0442\u043B\u0438\u0447\u043D\u043E" } ], [ { "text":"\u041D\u043E\u0440\u043C\u0430\u043B\u044C\u043D\u043E", "callback_data":"\u041D\u043E\u0440\u043C\u0430\u043B\u044C\u043D\u043E" } ], [ { "text":"\u041F\u043B\u043E\u0445\u043E", "callback_data":"\u041F\u043B\u043E\u0445\u043E" } ] ], "rows":1 } ```