telegram电报机器人连续对话PHPdemo

 2024-12-18  阅读 456  评论 5  点赞 452

摘要:telegram电报机器人连续对话PHPdemo

telegram电报机器人连续对话PHPdemo

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 可以清空会话历史

下一篇:没有了
标签:telegramphp

评论列表:

  •   echo111
     发布于 1天前回复该评论
  • 写的很不错,学到了!
  •   xiaoming22
     发布于 4小时前回复该评论
  • 写的很不错,学到了!
显示更多评论

发表评论:

管理员

承接各种程序开发,外贸网站代运营,外贸网站建设等项目
  • 内容193
  • 积分66666
  • 金币66666

Copyright © 2024 LS'Blog-保定PHP程序员老宋个人博客 Inc. 保留所有权利。 Powered by LS'blog 3.0.3

页面耗时0.0279秒, 内存占用1.96 MB, 访问数据库33次

冀ICP备19034377号