如何在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,
'text' => $response,
'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,它很好;)
标签:telegram-bot,php,php-telegram-bot 来源: https://codeday.me/bug/20190727/1551300.html