Bale Messenger, Как использовать InlineKeyboardMarkup с C # - PullRequest
0 голосов
/ 21 октября 2019

мой Bale Bot хорошо работает с "ReplyKeyboardMarkup" с методом "sendMessage", но когда я пытаюсь использовать "InlineKeyboardMarkup", я получаю номер ошибки 400 и ничего не посылаю клиенту.

это мои классы

InlineKeyboardMarkup:

public class InlineKeyboardMarkup
{
    public InlineKeyboardButton[][] inline_keyboard { get; set; }
}


public class InlineKeyboardButton
{
    public string text { get; set; }


    public string url { get; set; }


    public string callback_data { get; set; }


    public string switch_inline_query { get; set; }


    public string switch_inline_query_current_chat { get; set; }


    public bool pay { get; set; }
}

структура ключа:

    public static InlineKeyboardMarkup InlineHomeMenu
{
    get
    {
        return new InlineKeyboardMarkup()
        {
            inline_keyboard = new InlineKeyboardButton[][]
            {
                new InlineKeyboardButton[]
                {
                   new InlineKeyboardButton()
                   {
                       callback_data = "0",
                       pay = false,
                       text = "? some text1",
                       url = "",
                       switch_inline_query = "",
                       switch_inline_query_current_chat = ""
                   }
                }
            }
        };
    }
}

наконец, Сериализация и отправка:

        NameValueCollection postData = HttpUtility.ParseQueryString(string.Empty);

        postData.Add("chat_id", #);
        postData.Add("text", "text");

        postData.Add("reply_markup", new JavaScriptSerializer().Serialize(InlineHomeMenu));

        SendToBale("sendMessage", postData);
...