PHP telegram电报机器人 消息回声机器人

2024-10-06 117 0

1、申请bot,获取token,设置webhook:

https://api.telegram.org/bot<token>/setwebhook?url=https://www.youdocument.com/bot/bot.php

复制连接到浏览器中,显示以下json表示设置成功

{"ok":true,"result":true,"description":"Webhook is set"}

20241006103508393

2、设置获取信息的监听脚本

<?php

function writeLog($log, $file = 'out')
{
    #生产环境写消息队列
    $of = fopen("{$file}-" . date("Y-m-d-H") . ".txt", 'a+');
    fwrite($of, $log . '<br>--------------end--------------' . date("Y-m-d H:i:s") . "\r\n");
    fclose($of);
}

function sendMessage($chatId, $message)
{
    $url = $GLOBALS[website] . "/sendMessage?chat_id=" . $chatId . "&text=" . urlencode($message);
    writeLog($url);
    url_get_contents($url);
}
function url_get_contents($Url)
{
    if (!function_exists('curl_init')) {
        die('CURL is not installed!');
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $Url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}


$botToken = 'token';
$website = "https://api.telegram.org/bot" . $botToken;
$request = file_get_contents('php://input');
$request = json_decode($request, true);
if (!$request) {
    // Some Error output (request is not valid JSON)
} elseif (!isset($request['update_id']) || !isset($request['message'])) {
    // Some Error output (request has not message)
} else {
    $chatId = $request["message"]["chat"]["id"];
    $message = $request["message"]["text"];
    writeLog($message);
    sendMessage($chatId,$message);
}

?>

把文件保存为bot.php服务器上

    相关文章

    PHP常用时间日期处理总结
    使用PHP获取文件夹中所有文件
    thinkphp8中,数据库的字段是 api_node_id ,值是:多个用英文逗号区分,这种应如何来查询准确的数据取出唯一的主键ID?
    tp(thinkphp6)记录后台操作日志
    ThinkPHP6实现上传图片带水印方法
    ThinkPHP6实现简单的记录网站后台管理操作日志方法

    发布评论