电话
400 9058 355
在 telegram bot 开发中,`forward_from` 字段嵌套在 `message` 对象内,直接访问 `$update['forward_from']['id']` 会因路径错误返回 null;正确路径是 `$update['message']['forward_from']['id']`。
Telegram 的 Webhook 接收的更新(Update)对象是一个层级结构的 JSON 数据,其根节点并不直接包含 forward_from,而是通过 message(或 channel_post、edited_message 等子对象)间接承载消息内容。当你收到一条用户转发的消息时,forward_from 信息仅存在于 $update['message'] 下——前提是该消息确为普通聊天中的转发(非频道转发,且原始用户未启用“隐藏转发来源”隐私设置)。
✅ 正确用法示例:
$update = json_decode(file_get_contents('php://input'), TRUE);
// 安全检查:确保是消息更新,且存在 forward_from
if (isset($update['message']) && isset($update['message']['forward_from'])) {
$originalUserId = $update['message']['forward_from']['id'];
$originalFirstName = $update['message']['forward_from']['first_name'] ?? 'Unknown';
$originalUsername = $update['message']['forward_from']['username'] ?? null;
echo "原始发送者 ID: {$originalUserId}\n";
echo "姓名: {$originalFirstName}" . ($originalUsername ? " (@{$originalUsername})" : "");
} else {
echo "未检测到转发来源(可能为非转发消息、隐私限制或频道转发)";
}⚠️ 注意事项:

? 总结:路径错误是最常见的 forward_from 为 null 原因。牢记 Telegram Update 结构:$update → ['message'] → ['forward_from'] → ['id']。调试时建议先 var_dump($update) 查看完整结构,再精准取值。
邮箱:8955556@qq.com
Q Q:8955556
本文详解如何将Go官方present工具(用于生成HTML5...
PySNMP在不同版本中对SNMP错误状态(errorSta...
time.Sleep仅阻塞当前goroutine,其他gor...
PHPfopen()创建含特殊符号的文件名失败主因是操作系统...
WooCommerce中通过代码为分组产品动态聚合子商品的属...
io.ReadFull返回io.ErrUnexpectedE...
本文详解Yii2中控制器向视图传递ActiveRecord数...
本文详解为何通过wp_set_object_terms()为...
Pytest中使用@mock.patch类装饰器会导致补丁泄...
带缓冲的channel是并发安全的FIFO队列;make(c...