InlineKeyboardButton在InlineKeyboardMarkup中有限制吗?电报机器人C#
作者:互联网
我使用C#和telegram.bot并希望创建动态的InlineKeyboardMarkup
private static InlineKeyboardMarkup InlinePostsKeyboard;
private static List<string> PostsTitle;
...
PostsTitle = (from p in dba.BlogPosts select p.Subject).Take(4).ToList();
var inlineButtons = PostsTitle.Select(title => new[] { InlineKeyboardButton.WithCallbackData(title, title) }).ToArray();
InlinePostsKeyboard = new InlineKeyboardMarkup(inlineButtons);
...
Bot.SendTextMessageAsync(Chat.Id, e.Message.Text, replyMarkup: InlinePostsKeyboard);`
正如你在上面的代码中所看到的,大多数显示4个InlineKeyboardButton(每行),但没有显示任何内容!
足够改变…. Take(4).ToList();等于3或小于4(例如:3,2或1),您将看到按钮将正确显示
我想知道原因
我哪里弄错了?
解决方法:
如果内联键盘行/按钮数量有限,则肯定超过3.
记录和检查您发送给Telegram API的内容.我怀疑你的一篇博文p.Subject返回空字符串或太长字符串或Telegram不允许的内容.
还要确保您正在使用的库正确转义值(例如,替换特殊字符,如“)
顺便说一句,为什么你会将post subject作为callback_data传递?将帖子ID传递给像post?id = 123这样的东西不是更好吗?
标签:c,telegram,telegram-bot 来源: https://codeday.me/bug/20190622/1264094.html