只是一个关于telegram php机器人的快速问题(该机器人在heroku上设置为webhook(
我目前有以下代码:
<?php
$content = file_get_contents("php://input");
$update = json_decode($content, true);
if(!$update)
{
exit;
}
$message = isset($update['message']) ? $update['message'] : "";
$messageId = isset($message['message_id']) ? $message['message_id'] : "";
$chatId = isset($message['chat']['id']) ? $message['chat']['id'] : "";
$firstname = isset($message['chat']['first_name']) ? $message['chat']['first_name'] : "";
$lastname = isset($message['chat']['last_name']) ? $message['chat']['last_name'] : "";
$username = isset($message['chat']['username']) ? $message['chat']['username'] : "";
$date = isset($message['date']) ? $message['date'] : "";
$text = isset($message['text']) ? $message['text'] : "";
$text = trim($text);
$text = strtolower($text);
header("Content-Type: application/json");
$response = '';
if(strpos($text, "/start") === 0 || $text=="ciao") {
$response = "Ciao $firstname, sono il bot del gruppo A7A. Scrivi /serie per sapere quali serie traduciamo al momento, o /sub per conoscere l'avanzamento delle traduzioni. Per contattarci, usa /scrivici";
}
elseif($text=="/serie" || $text=="/serie@a7asubtitlesbot") {
$response = "Al momento ci occupiamo delle seguenti serie ߓ:rnThe Flash s06 (solo crossover),nrArrow S08 (solo Crossover),nrLegends of Tomorrow s05 (solo crossover),nWatchmen,rnThe 100,nVeronica Mars s04,nVictoria,rnThe Alienist,rnA Teacher,rnBig Sky,rnCall Your Mother,rnYounger s07,rnRiverdale,rnFather Brown s08,rnGossip Girl 2021,rnStargirl (DC),rnProfessor T,rnThe North Water,rnOne of Us Is Lying,rnBrassic,rnDexter New Blood,rnWheel of Time";
}
elseif($text=="/sub" || $text=="/sub@a7asubtitlesbot") {
$response = "Di quale serie vorresti conoscere l'avanzamento?rnScrivi il titolo della serie citando questo messaggio.";
} else {
$response = "";
}
$parameters = array('chat_id' => $chatId, "text" => $response);
$parameters["method"] = "sendMessage";
echo json_encode($parameters);
现在机器人以文本形式响应,发送的所有内容都写在"$响应";
我想知道当用户发送命令/sub 时,我应该更改什么来让机器人发送自定义键盘(replykeyboardmarkup(
elseif($text=="/sub" || $text=="/sub@a7asubtitlesbot")
{
$response = "Di quale serie vorresti conoscere l'avanzamento?rnScrivi il titolo della serie citando questo messaggio.";
}
现在机器人发送这个";系列产品是否合格?\我是意甲冠军"当我键入/子时
如果我想让它发送一个有3/4按钮的键盘,在$response之后我应该写什么?
如果使用telegram bot库,您可能会发现事情会变得更容易
这个例子还没有经过测试,可能无法开箱即用,但希望它能让你朝着正确的方向前进。
elseif($text=='/sub' || $text=='/sub@a7asubtitlesbot') {
$response = "Di quale serie vorresti conoscere l'avanzamento?rnScrivi il titolo della serie citando questo messaggio.";
// I am not quite sure on the nesting structure for the arrays of buttons
$keyboard = [[['text' => 'button 1'], ['text' => 'button 2'], ['text' => 'button 3']]];
// alternative nesting to try
// $keyboard = [[['text' => 'button 1']], [['text' => 'button 2']], [['text' => 'button 3']]];
} else {
$response = '';
}
$parameters = array('chat_id' => $chatId, 'text' => $response);
if (is_array($keyboard)) {
$parameters['reply_markup'] = ['keyboard' => $keyboard, 'one_time_keyboard' => true];
}
$parameters['method'] = 'sendMessage';
echo json_encode($parameters);