我正在尝试使用php创建一个用于电报的内联机器人。我跟随了BotFather的步骤。我创建了机器人,获取了令牌,setinline并设置了占位符消息。我已经设置了webhook并且它正在工作。但是当我在消息中键入机器人时,我什么也得不到,如果我发送消息,那么什么都不会发生。 webhook正在运行,我已尝试使用普通消息。
这是我的代码,过了一段时间我只是放弃并从博客中获取它,编辑了一下。
$content = file_get_contents("php://input");
$update = json_decode($content, true);
$chatID = $update["message"]["chat"]["id"];
//sendMessage(print_r($update,true), $chatID);
if (isset($update["inline_query"])) {
$inlineQuery = $update["inline_query"];
$queryId = $inlineQuery["id"];
$queryText = $inlineQuery["query"];
if (isset($queryText) && $queryText !== "") {
apiRequestJson("answerInlineQuery", [
"inline_query_id" => $queryId,
"results" => ($queryText),
"cache_time" => 86400,
]);
}
else {
apiRequestJson("answerInlineQuery", [
"inline_query_id" => $queryId,
"results" => [
[
"type" => "article",
"id" => "0",
"title" => "TEST",
"message_text" => "TEST",
],
]
]);
}
}
机器人仍然没有给我看。 我想我刚跳过一步。
答案 0 :(得分:2)
结果需要在message_text
中包含密钥input_message_content
。因此,结果可能如下所示:
$results = array(
array(
"type" => "article",
"id" => "1",
"title" => "Title",
"description" => "Description",
"input_message_content" => array(
"message_text" => "<code>Message 1</code>",
"parse_mode" => "HTML"
)
)
);
$postData = array(
"inline_query_id" => $inlineQuery["id"],
"results" => json_encode($results),
"cache_time" => 0
);