Telegram 机器人键盘通过 JSON 发送

2023-12-29

我正在使用 MS Bot 框架。我想向用户发送自定义键盘,因此我尝试使用以下 JSON 回复消息:

        public async Task<Message> Post([FromBody]Message message)
    {

        var connector = new ConnectorClient();

        if (message.Type == "Message")
        {             
            var replyMessage = message.CreateReplyMessage($"You sent message");

            replyMessage.ChannelData = @"

{ ""方法"": ""发送消息"", ““参数””: { “回复标记”: { ""键盘"":[[["1""],["2""]],[["3""]],[["4""],[""5"" ],[""6""]]] }
} }";

            return replyMessage;



        }
        else
        {
            return HandleSystemMessage(message);
        }
    }

但什么也没发生。例如,这条带贴纸的消息效果很好:

replyMessage.ChannelData = @"
{
    ""method"": ""sendSticker"",
    ""parameters"":
    {
        ""sticker"":
        {
            ""url"": ""https://upload.wikimedia.org/wikipedia/commons/3/33/LittleCarron.gif"",
            ""mediaType"": ""image/gif""
        }
    }
}";

我认为问题出在数组中某处的“键盘”部分。


添加另一个括号到您的keyboard.(又一个数组)像这样:

""keyboard"":[[[""1""],[""2""]],[[""3""]],[[""4""],[""5""],[""6""]]]

知道彼此内部有一个三重数组,而不是两个代码。

文档 https://core.telegram.org/bots/api#replykeyboardmarkup

工作代码的一部分:

    $keyboard = [
    'keyboard' =>
        [[['text' => '1'], ['text' => '2']], [['text' => '3']], [['text' => '4'], ['text' => '5'], ['text' => '6']]],
    'one_time_keyboard' => true,
];
$markup = json_encode($keyboard, true);
$data = [
    'chat_id' => sender_user_id($update),
    'text' => 'JUST A TEXT',
    'reply_markup' => $markup];


$ch = curl_init();
$url = 'https://api.telegram.org/bot' . BOT_TOKEN . '/SendMessage';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ($data));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($ch);
curl_close($ch);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Telegram 机器人键盘通过 JSON 发送 的相关文章

随机推荐

  • Global.asax 未加载预编译的 asp.net 网站

    我使用 Visual Studio 2008 发布我的 asp net 网站 当我在服务器 Windows 2008 服务器 上打开该网站时 我注意到 global asax 中的代码没有运行 我的 Global asax 主体类似于
  • WMI 和 Win32_DeviceChangeEvent - 返回了错误的事件类型?

    我正在尝试使用 WMI 注册 设备添加 设备删除 事件 当我说设备时 我指的是钥匙上的磁盘或任何其他带有我可以访问的文件的设备 我正在注册该事件 并且引发了该事件 但 EventType 属性与我期望看到的不同 文档 MSDN http m
  • 使用实体框架向模型添加方法

    使用实体框架 是否可以向对象类添加方法 例如 我有一个 CLIENT 映射 我想创建一个 getAgeFromBirhDate 方法 是的 这是可能的 实体框架生成部分课程 http msdn microsoft com en us lib
  • 日期时间的 SSIS 源格式隐式转换

    有谁知道有一个图表可以显示 SSIS 中不同数据类型支持哪些日期格式 例如 是否DT DBTimestamp支持格式1 Jan 我尝试寻找但找不到任何东西 我问的原因是我发现当我尝试做一个Convert datetime 1 Jan 它失败
  • 为什么我不能在 Scala 子类中分配给 var?

    假设我有以下抽象类 abstract class A var is happy Boolean def toggle happiness 现在我想定义一个具体的类来实现toggle happiness method class B is h
  • 无法使用 Bouncy Castle 与 Xamarin 和 Java Server 从流读取(IOException:非阻塞套接字会阻塞)

    先决条件 我正在使用 Xamarin 编写一个移动应用程序 该应用程序应该与 java 服务器交换小消息块 我使用 Bouncy Castle 的 NET 实现通过 TLS 发送数据 因为我仅限于特定的密码套件 TLS ECDH anon
  • 为什么 08 在 Java 中不是有效的整数文字?

    Why is 08被认为是超出范围的 int 但07而下面不是吗 在 Java 和其他几种语言中 以0被解释为八进制 基数为 8 数量 对于个位数 除08 and 09 这是不允许的 结果是相同的 所以您可能没有注意到它们被解释为八进制 但
  • 为什么我会收到“不兼容的类型:对象无法转换为字符串”?

    我正在尝试使用最简单的代码从 Android 应用程序调用 Web API REST 方法 以及我找到的代码here http www speakingcode com 2012 09 10 how to consume data from
  • 读取 R 中的有向图

    我在阅读 创建有向图时遇到问题 我按照我找到的步骤进行操作here http www ats ucla edu stat r faq snplot htm 这是我的文本文件图 txt 1 2 1 3 2 5 3 4 3 5 4 5 5 6
  • 如何仅在赋值时实现嵌套字典的自动生存?

    TL DR 在为子键分配值时 如何让超级键在 Python 字典中自动激活 而不在检查子键时也让它们自动激活 背景 通常在Python中 在嵌套字典中设置值需要在分配给子键之前手动确保更高级别的键存在 那是 my dict 1 2 3 如果
  • 在 SuiteScript 中设置国家/地区

    我需要从销售订单上的自定义字段设置采购订单上的发货国家 地区 根据 NS 文档 记录浏览器 该字段是文本 但在 UI 中显然它是一个下拉菜单 在架构浏览器中 它引用国家 地区列表 其中值为 unitedStates 等 我尝试将其设置为 U
  • 如何实现CSS边框角倒角而不是圆角?

    通过CSSborder radius属性我可以在末尾有一个弯曲的圆角边框 boxLeft border right 1px dashed 333 border bottom 1px dashed 333 border radius 0 0
  • 删除 YouTube 观看稍后播放列表项目失败 - 返回 404

    我有代码可以从我的 youtube watch Later 播放列表中删除一个项目 大约两周前 这一切都正常 现在我从 YouTube 收到 404 错误 这是请求和响应的序列 当然 身份验证详细信息已被删除 获取播放列表项请求 GET 获
  • Angular 2 如何模糊按钮返回时的输入?

    如何模糊input按本机键盘返回button在移动 例如
  • XCode 4.2 版本检查器隐藏情节提要

    我不确定其他人是否遇到这个问题 但是当我单击 XCode 中的 版本编辑器 按钮时 我的 Storyboard 切换到 XML 视图 并且我不知道如何恢复可视化编辑器 有人可以帮忙吗 我真的希望这只是深夜编码困倦的结果 提前致谢 右键单击
  • AddressBook:如何获取不同 Exchange 源的名称

    我想要获取我的 iPhone 同步到的所有 Exchange 源的名称 例如如果我使用 ActiveSync Exchange 将我的设备同步到 Gmail 和 Hotmail 帐户 在本机联系人中 我可以根据我设置的不同帐户看到不同的部分
  • 是否有涵盖 iPhone、Android、WebOS 和 Blackberry OS 的 jQ Touch 等效产品?

    我即将开始使用 HTML5 CSS3 和 JavaScript 为最新的智能手机编写一个 Web 应用程序 我需要的不是框架 而是像 jQuery 这样的库 我研究了 jQTouch 它非常适合 iPhone 显然也支持 Android 但
  • JBoss JAAS 自定义登录模块

    我正在尝试使用自定义JAAS托管的基于 Web 的应用程序的身份验证模块JBoss 5 1 0 GA 所以一切似乎都工作正常 直到用户数量增加并且会话 它认为 开始变得混合 我使用自定义 JAAS 的原因是因为自定义身份验证后端以及需要传回
  • PHP 5 反射 API 性能

    我目前正在考虑在我自己的 MVC Web 框架中使用 Reflection 类 主要是 ReflectionClass 和 ReflectionMethod 因为我需要自动实例化控制器类并调用它们的方法 而无需任何所需的配置 约定优于配置
  • Telegram 机器人键盘通过 JSON 发送

    我正在使用 MS Bot 框架 我想向用户发送自定义键盘 因此我尝试使用以下 JSON 回复消息 public async Task