telegram电报机器人连续对话PHPdemo
你需要使用 BotFather 创建一个机器人,并获取 BOT_TOKEN
<?php
// Telegram Bot Token
$botToken = "YOUR_BOT_TOKEN_HERE";
$apiURL = "https://api.telegram.org/bot$botToken/";
// 文件存储会话数据
$sessionFile = "sessions.json";
// 获取 Webhook 推送的数据
$update = json_decode(file_get_contents("php://input"), true);
// 如果没有更新,直接退出
if (!$update) {
exit;
}
// 提取聊天 ID 和消息
$chatId = $update['message']['chat']['id'];
$message = $update['message']['text'] ?? '';
// 加载会话数据
$sessions = file_exists($sessionFile) ? json_decode(file_get_contents($sessionFile), true) : [];
// 检查是否有会话上下文
if (!isset($sessions[$chatId])) {
$sessions[$chatId] = [];
}
// 处理用户消息逻辑
if (strtolower($message) === 'reset') {
$sessions[$chatId] = [];
$reply = "对话已重置。您可以重新开始提问。";
} else {
// 将消息添加到上下文中
$sessions[$chatId][] = $message;
// 模拟回复逻辑,结合上下文生成回复
$context = implode(" ", $sessions[$chatId]);
$reply = "您刚才说了:$context";
}
// 保存会话数据
file_put_contents($sessionFile, json_encode($sessions));
// 发送回复
file_get_contents($apiURL . "sendMessage?chat_id=" . $chatId . "&text=" . urlencode($reply));
?>
替换代码中的 YOUR_BOT_TOKEN_HERE
为你的 Telegram Bot Token,与机器人聊天时,输入 reset
可以清空会话历史
评论列表:
发布于 1天前回复该评论
发布于 22小时前回复该评论
发布于 16小时前回复该评论
发布于 10小时前回复该评论
发布于 4小时前回复该评论