gpt4 book ai didi

c# - InlineKeyboardButton 在 InlineKeyboardMarkup 中有限制吗? Telegram Bot C#

转载 作者:太空狗 更新时间:2023-10-30 01:14:05 29 4
gpt4 key购买 nike

我使用 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 不允许的内容。

还要确保您使用的库能够正确转义值(例如替换特殊字符,如 ")

顺便问一下,为什么要将帖子主题作为 callback_data 传递?像 post?id=123 这样传递帖子 ID 不是更好吗?

关于c# - InlineKeyboardButton 在 InlineKeyboardMarkup 中有限制吗? Telegram Bot C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46389040/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com