You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP/cURL调用Telegram Bot API遇问题求助

解决PHP cURL调用Telegram Bot API的问题

看起来你在调用Telegram Bot API发送消息时遇到了问题,而且代码还没写完(curl_error($...部分截断了)。我帮你梳理下常见问题点,以及修正后的完整方案:

你的代码里的几个明显问题

  • 占位符未替换:<token>需要换成BotFather给你的机器人令牌,chat_id=***要替换成实际的聊天ID(可以通过调用getUpdates接口获取)
  • 错误捕获不完整:未写完的curl_error无法帮你定位具体的cURL报错
  • SSL设置冲突:CURLOPT_SSL_VERIFYPEER=false和CURLOPT_SSL_VERIFYHOST=2搭配可能引发SSL验证异常
  • 使用GET请求:Telegram API推荐用POST发送请求,尤其是消息内容含特殊字符时,GET会有长度限制和编码问题

修正后的完整代码

<?php
// 替换成你的机器人令牌和目标聊天ID
$botToken = '你的Bot令牌';
$chatId = '目标聊天ID';
$message = 'Hello from PHP cURL';

// 初始化cURL会话
$cSession = curl_init();

// 设置cURL核心选项
curl_setopt($cSession, CURLOPT_URL, "https://api.telegram.org/bot{$botToken}/sendMessage");
curl_setopt($cSession, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cSession, CURLOPT_POST, true);
// 用POST字段传递参数,避免GET的编码和长度问题
curl_setopt($cSession, CURLOPT_POSTFIELDS, http_build_query([
    'chat_id' => $chatId,
    'text' => $message
]));
// SSL验证优化:生产环境建议开启验证,测试环境可暂时关闭
curl_setopt($cSession, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($cSession, CURLOPT_SSL_VERIFYHOST, 2);

// 执行请求
$result = curl_exec($cSession);

// 捕获并输出错误信息
if(curl_errno($cSession)){
    echo 'cURL错误详情: ' . curl_error($cSession);
} else {
    // 将JSON返回结果转为数组,方便查看API反馈
    $response = json_decode($result, true);
    if($response['ok']){
        echo '消息发送成功!';
    } else {
        echo 'API返回错误: ' . $response['description'];
    }
}

// 关闭cURL会话
curl_close($cSession);
?>

排查问题的实用步骤

  1. 先验证API有效性:直接在浏览器访问https://api.telegram.org/bot<你的令牌>/getMe,如果返回机器人信息,说明令牌有效;若报错,检查令牌是否正确
  2. 获取正确聊天ID:给机器人发一条消息后,访问https://api.telegram.org/bot<你的令牌>/getUpdates,就能从返回结果里找到你的聊天ID
  3. 检查服务器网络:确认你的服务器能访问api.telegram.org,可以用ping api.telegram.org或curl -I https://api.telegram.org测试连通性
  4. 查看完整错误:确保curl_error完整输出,比如超时、SSL证书问题等,针对性解决

内容的提问来源于stack exchange,提问作者MOHW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:08:36