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

2024-10-06 56 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服务器上

    相关文章

    深入探讨文件服务器的定义、特点,以及与传统服务器的不同之处
    Thinkphp8安装topthink/think-captcha验证码的和使用方法
    使用PHP创建telegram聊天机器人
    php 取当月有多少天 然后返回整数的方法
    php计算两个日期之间相隔的天数
    在 ThinkPHP8 中,选择使用 findOrEmpty() 还是 find() 取决于你对结果处理的需求

    发布评论