Telegram webhook 设置自动获取发送的消息php

 2024-12-10  阅读 549  评论 5  点赞 354

摘要:Telegram webhook 设置自动获取发送的消息php,最近在搞telegram的自动回复消息功能

最近在搞telegram的自动回复消息功能:

Telegram webhook 设置自动获取发送的消息php

首先设置webhook:

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

请求结果是:

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

设置获取信息的监听脚本:

$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"];


    switch ($message) {

        case "/test":
            sendMessage($chatId, "test");

            break;

        case "/hi":
            sendMessage($chatId, "hi there!");

            break;

        default:
            sendMessage($chatId, "default");
    }

    function sendMessage($chatId, $message)
    {
        $url = $GLOBALS[website] . "/sendMessage?chat_id=" . $chatId . "&text=" . urlencode($message);
        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;
    }
}
$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"];


    switch ($message) {

        case "/test":
            sendMessage($chatId, "test");

            break;

        case "/hi":
            sendMessage($chatId, "hi there!");

            break;

        default:
            sendMessage($chatId, "default");
    }

    function sendMessage($chatId, $message)
    {
        $url = $GLOBALS[website] . "/sendMessage?chat_id=" . $chatId . "&text=" . urlencode($message);
        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;
    }
}

基本都设置完成了!

 

上一篇:没有了
标签:telegram

评论列表:

  •   helloword
     发布于 1月前回复该评论
  • 写的很不错,学到了!
显示更多评论

发表评论:

管理员

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

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

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

冀ICP备19034377号