微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在PHP Bot Telegram中创建内联按钮

由于公司需要,我必须在PHP中编程…但我第一次使用PHP …这是我第一次使用电报机器人:'(
在某种程度上,之前,当我运行命令/ start和doWork时,一切正常……

但现在我必须修改机器人,所有命令都隐藏在某个电报按钮后面…这里我是如何编辑我的PHP页面的:

if(strpos($text,"/start") === 0)
{
    $response = "Ciao $firstname,benvenuto!";

    $keyboard = [
        'inline_keyboard' => [
            [
                ['text' => 'forward me to groups']
            ]
        ]
    ];

    $encodedKeyboard = json_encode($keyboard);
    $parameters = 
        array(
            'chat_id' => $chatId,'text' => $response,'reply_markup' => $encodedKeyboard
        );
    $parameters["method"] = "sendMessage";
    echo json_encode($parameters);

}

有了BotFather,我也运行了命令/ setinline ……

所以我想我正在研究我的参数数组..有谁可以帮我吗?

Ps.:(如果任何人都可以建议我也是一个与我合作的IDE …我现在正在使用记事本)

谢谢你们

解决方法

首先,您不需要在botFather中使用/ setinline命令.当您在正常聊天模式下使用inline_keyboard时,此命令用于“内联模式”,这是一个自定义键盘.

你还需要在键盘数组中为每个按钮提供一个callback_data:

$keyboard = [
    'inline_keyboard' => [
        [
            ['text' => 'forward me to groups','callback_data' => 'someString']
        ]
    ]
];
$encodedKeyboard = json_encode($keyboard);
$parameters = 
    array(
        'chat_id' => $chatId,'reply_markup' => $encodedKeyboard
    );

send('sendMessage',$parameters); // function description Below

最后你需要通过curl发送它.这是我在我的代码中使用的函数

function send($method,$data)
{
    $url = "https://api.telegram.org/bot<Bot-Token>". "/" . $method;

    if (!$curld = curl_init()) {
        exit;
    }
    curl_setopt($curld,CURLOPT_POST,true);
    curl_setopt($curld,CURLOPT_POSTFIELDS,$data);
    curl_setopt($curld,CURLOPT_URL,$url);
    curl_setopt($curld,CURLOPT_RETURNTRANSFER,true);
    $output = curl_exec($curld);
    curl_close($curld);
    return $output;
}

附:我个人使用PHPStorm,它很好;)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐