Telegram 机器人键盘 PHP
Telegram bot keyboard PHP
我在 PHP 中为我的电报机器人编写了这个函数,但它不起作用:
if($text == "t"){
$keyboard = array(
"inline_keyboard" => array(
array(
array(
"text" => "My Button Text",
"callback_data" => "myCallbackData"
)
)
)
);
$key = array(
"keyboard" => $keyboard,
);
keyboard($chatId, "asadsd", $key);
}
function keyboard($chatID, $text, $t)
{
$t2 = $t;
$t3 = json_encode($t2);
api("sendMessage?chat_id=$chatId&text=$text&parse_mode=HTML&reply_markup=$t3");
}
它应该可以工作,但没有这样做。
您的代码无效,因为您正试图将 inline_keyboard 数组放入经典键盘数组中。所以:
- 删除
$key = array(...);
并且当您调用键盘功能时输入 $keyboard
而不是 $key
.
- 在键盘函数中使用
$chatID
而不是 $chatId
因为 php 变量名称区分大小写。
- 删除
$t2
和 $t3
,因为它们没用。
- 我建议放置一个参数变量并使用
http_build_query
构建参数,这样它会自动进行 urlencode 并构建变量。
您的代码应如下所示:
if($text == "t"){
$keyboard = array(
"inline_keyboard" => array(
array(
array(
"text" => "My Button Text",
"callback_data" => "myCallbackData"
)
)
)
);
keyboard($chatId, "asadsd", $keyboard);
}
function keyboard($chatID, $text, $t)
{
$args = array(
"chat_id" => $chatID,
"text" => $text,
"parse_mode" => "HTML",
"reply_markup" => json_encode($t),
);
api("sendMessage?".http_build_query($args));
}
假设一切都已设置,代码应该可以正常工作。下次请更具体
我在 PHP 中为我的电报机器人编写了这个函数,但它不起作用:
if($text == "t"){
$keyboard = array(
"inline_keyboard" => array(
array(
array(
"text" => "My Button Text",
"callback_data" => "myCallbackData"
)
)
)
);
$key = array(
"keyboard" => $keyboard,
);
keyboard($chatId, "asadsd", $key);
}
function keyboard($chatID, $text, $t)
{
$t2 = $t;
$t3 = json_encode($t2);
api("sendMessage?chat_id=$chatId&text=$text&parse_mode=HTML&reply_markup=$t3");
}
它应该可以工作,但没有这样做。
您的代码无效,因为您正试图将 inline_keyboard 数组放入经典键盘数组中。所以:
- 删除
$key = array(...);
并且当您调用键盘功能时输入$keyboard
而不是$key
. - 在键盘函数中使用
$chatID
而不是$chatId
因为 php 变量名称区分大小写。 - 删除
$t2
和$t3
,因为它们没用。 - 我建议放置一个参数变量并使用
http_build_query
构建参数,这样它会自动进行 urlencode 并构建变量。
您的代码应如下所示:
if($text == "t"){
$keyboard = array(
"inline_keyboard" => array(
array(
array(
"text" => "My Button Text",
"callback_data" => "myCallbackData"
)
)
)
);
keyboard($chatId, "asadsd", $keyboard);
}
function keyboard($chatID, $text, $t)
{
$args = array(
"chat_id" => $chatID,
"text" => $text,
"parse_mode" => "HTML",
"reply_markup" => json_encode($t),
);
api("sendMessage?".http_build_query($args));
}
假设一切都已设置,代码应该可以正常工作。下次请更具体