ThinkPHP微信公众号第三方代授权轻量方案
简介这是一份面向PHP开发者与微信生态技术实践者的轻量级第三方代授权解决方案专为ThinkPHP框架环境定制帮助开发者快速集成微信公众号平台的代授权能力解决多公众号统一管理、授权流程自动化等实际业务需求。资源包仅含2个核心PHP文件总大小7KB结构精简其中index.php承担授权入口与回调逻辑调度wxBizMsgCrypt.php则封装消息加解密与签名验证功能符合微信官方安全规范便于嵌入现有ThinkPHP项目快速启用。目前已有889人学习下载适合中初级PHP工程师在小程序后台、SaaS运营系统或公众号矩阵管理场景中复用授权模块。读者可直接部署运行获取完整的代授权流程闭环代码、标准接口调用结构及关键参数配置说明无需额外依赖即可理解并调试授权链路中的token刷新、授权码交换与公众号信息获取等核心环节。1. 微信公众号第三方代授权ThinkPHP版一个能绕过微信开放平台“授权回调域名”硬限制的轻量级落地方案你有没有遇到过这种场景客户要快速上线一个公众号运营SaaS但又不想自己去微信开放平台备案一堆公众号、配一堆授权回调域名或者你正在开发一个面向中小商户的营销工具需要让商户用自己的公众号一键授权给你的系统但微信官方要求每个公众号都得单独配置可信域名——而你根本没法提前知道商户会填什么域名这个ThinkPHP版第三方代授权项目就是为这类「多租户动态公众号接入」场景量身写的。它不依赖微信开放平台的“公众号第三方平台”资质那种要交保证金、走审核的重模式而是用「网页授权 服务端中转 本地Token持久化」三步把授权流程从微信服务器侧“搬”到你自己的ThinkPHP后端里跑。适合中小型团队快速集成、二次开发也适合教学演示微信OAuth2.0在真实业务中的非标用法。项目结构干净核心逻辑不到300行没有封装成黑匣子所有微信接口调用、token刷新、事件推送解密都摊开写改起来不玄学。2. 技术栈与架构设计为什么选ThinkPHP 5.1 原生微信API封装而不套SDK这个项目不是“ThinkPHP EasyWeChat”的简单拼接而是刻意剥离了SDK层选择直接调用微信官方HTTP接口。原因很实际EasyWeChat等SDK对“第三方代授权”这种非标准流程支持薄弱很多字段比如pre_auth_code生成、component_verify_ticket解析、authorizer_access_token刷新要么封装太深、要么默认走官方平台模式反而增加调试成本。本项目用ThinkPHP 5.1兼容PHP 7.1作为基础框架只依赖其路由、数据库、缓存和Session模块其余全部手写。整个授权链路分三层前端层由你自己的H5页面发起跳转携带component_appid和临时state参数中继层ThinkPHP控制器接收微信回调完成code → access_token → authorizer_info三连取存储层将authorizer_appid、authorizer_access_token、authorizer_refresh_token、func_info权限列表、expires_in时间戳全部落库默认用MySQL并支持按authorizer_appid查、按过期时间自动刷新。提示项目未使用Redis做分布式锁因为单机部署下MySQLINSERT ... ON DUPLICATE KEY UPDATE已足够保证authorizer_access_token并发刷新时的数据一致性。若你后续要上K8s集群只需在refreshAuthorizerToken()方法开头加一行Cache::lock(refresh_.$appid, 10)-block(15)即可。2.1 目录结构说明5个核心文件决定成败项目根目录下关键文件共5个删掉任何一个都会导致授权中断/application /common.php ← 全局常量定义WECHAT_COMPONENT_APPID、WECHAT_COMPONENT_APPSECRET、WECHAT_COMPONENT_TOKEN、WECHAT_COMPONENT_ENCODINGAESKEY /controller/Authorize.php ← 主控制器含index生成pre_auth_code、callback处理授权回调、refresh手动刷新token三个方法 /model/Authorizer.php ← 数据模型对应authorizer表含saveAuthInfo()、getAuthInfo()、isTokenExpired()等方法 /command/RefreshToken.php ← ThinkPHP命令行指令可定时执行php think refresh_token批量刷新快过期的token /extra/wechat.php ← 配置文件仅存debug true开关开启后所有微信请求/响应会记录到runtime/log/wechat/其中/application/database.php需手动配置MySQL连接/public/.htaccess已预置Rewrite规则确保/authorize/callback能被正确路由Apache环境Nginx用户需自行补全location /authorize { try_files $uri $uri/ /index.php?$query_string; }。2.2 核心配置项详解4个密钥必须填对少一个都进不了回调页所有微信交互依赖以下4个配置项全部定义在/application/common.php顶部// 微信第三方平台信息必须在微信开放平台创建“公众号第三方平台”获取 define(WECHAT_COMPONENT_APPID, wx1234567890abcdef); // 平台AppID不是公众号AppID define(WECHAT_COMPONENT_APPSECRET, a1b2c3d4e5f678901234567890abcdef); // 平台AppSecret define(WECHAT_COMPONENT_TOKEN, mywechatplatformtoken); // 自定义Token用于验证微信服务器消息 define(WECHAT_COMPONENT_ENCODINGAESKEY, abcdefghijklmnopqrstuvwxyz0123456789ABCDEFG); // 43位AES密钥用于消息加解密注意WECHAT_COMPONENT_ENCODINGAESKEY不是随便填的。它必须是43位大小写字母数字组合且必须和你在微信开放平台「基本配置」里填写的完全一致。填错会导致component_verify_ticket解密失败进而无法生成pre_auth_code——这是新手翻车率最高的点。2.3 授权流程图解从用户点击“授权”到拿到公众号AccessToken的7步链路整个流程不经过微信开放平台后台全部由你的ThinkPHP服务器驱动用户访问你的/authorize/index?targetshop123页面后端调用https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode传入component_appid获取pre_auth_code拼接跳转URLhttps://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appidxxxpre_auth_codeyyyredirect_urihttps%3A%2F%2Fyourdomain.com%2Fauthorize%2Fcallback用户在微信内打开该链接选择要授权的公众号微信回调你的/authorize/callback?auth_codezzzexpires_in3600stateshop123后端用auth_code调用https://api.weixin.qq.com/cgi-bin/component/api_query_auth换得authorizer_appid、authorizer_access_token、authorizer_refresh_token将上述信息连同state即targetshop123一起存入数据库authorizer表并返回成功页。关键点在于第6步api_query_auth接口返回的是JSON但其中authorization_info字段是嵌套对象本项目用json_decode($res, true)[authorization_info]直接取值避免了SDK里常见的数组/对象混用导致的Fatal error: Cannot use object of type stdClass as array。3. 运行前必做5步初始化与3个验证动作别急着php think run这5步漏一步后面全是404或invalid component verify ticket。3.1 数据库建表SQL字段类型和索引一个都不能少运行前必须执行以下SQL创建authorizer表MySQL 5.7CREATE TABLE authorizer ( id int(11) unsigned NOT NULL AUTO_INCREMENT, authorizer_appid varchar(50) NOT NULL COMMENT 授权公众号AppID, authorizer_access_token varchar(512) NOT NULL COMMENT 接口调用凭据, authorizer_refresh_token varchar(512) NOT NULL COMMENT 刷新凭据, func_info text COMMENT 授权功能集JSON格式, expires_in int(11) NOT NULL DEFAULT 7200 COMMENT access_token有效期秒, create_time int(11) NOT NULL DEFAULT 0 COMMENT 创建时间戳, update_time int(11) NOT NULL DEFAULT 0 COMMENT 最后更新时间戳, PRIMARY KEY (id), UNIQUE KEY uk_appid (authorizer_appid), KEY idx_expire (expires_in,update_time) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT公众号授权信息表;注意authorizer_access_token字段长度设为512而非255是因为微信返回的token可能长达300字符idx_expire复合索引是为了command/RefreshToken.php里SELECT * FROM authorizer WHERE expires_in - (UNIX_TIMESTAMP() - update_time) 3600能走索引避免全表扫描。3.2 微信开放平台配置3处必须同步否则收不到ticket登录微信开放平台 → 「公众号第三方平台」→ 你的平台详情页检查以下三项是否与代码完全一致配置项代码位置必须一致值Token/application/common.php中WECHAT_COMPONENT_TOKENmywechatplatformtoken示例按你实际填EncodingAESKey同上WECHAT_COMPONENT_ENCODINGAESKEYabcdefghijklmnopqrstuvwxyz0123456789ABCDEFG43位授权事件接收URL平台后台填写https://yourdomain.com/authorize/callback必须是HTTPS且域名已在「JS接口安全域名」中备案提示授权事件接收URL不是用来收用户授权回调的而是收微信推送的component_verify_ticket每10分钟一次。如果这里填错pre_auth_code永远生成失败因为没ticket就拿不到component_access_token。3.3 本地环境验证用curl模拟ticket推送确认入口畅通在服务器上执行以下命令模拟微信推送component_verify_ticket生产环境会自动来但本地开发必须手动触发一次才能启动curl -X POST https://yourdomain.com/authorize/callback \ -H Content-Type: application/xml \ -d xml ToUserName![CDATA[wx1234567890abcdef]]/ToUserName FromUserName![CDATA[gh_abcdef123456]]/FromUserName CreateTime1600000000/CreateTime MsgType![CDATA[event]]/MsgType Event![CDATA[component_verify_ticket]]/Event ComponentVerifyTicket![CDATA[ticketabc123def456ghi789jkl012mno345pqr678stu901vwx234yz567]]/ComponentVerifyTicket /xml如果返回success且runtime/log/wechat.log里出现[INFO] Received component_verify_ticket: ticketabc123...说明入口通了。否则检查/application/controller/Authorize.php中callback()方法是否对MsgTypeevent做了echo success并立即exit——这是微信校验URL的硬性要求少这一句就会一直提示“配置未生效”。4. 常见问题排查5条血泪经验覆盖90%部署失败场景4.1 现象点击授权链接后跳转到微信空白页控制台报redirect_uri domain not allowed原因redirect_uri参数里的域名未在微信开放平台「公众号设置」→「公众号开发信息」→「JS接口安全域名」中备案。注意这里备案的是你自己的域名如yourdomain.com不是微信的域名。解决登录微信公众平台 → 左侧菜单「公众号设置」→「公众号开发信息」→ 拉到最底部「JS接口安全域名」添加你的域名不带http/https只填yourdomain.com保存后等待5分钟生效。4.2 现象回调地址收到请求但数据库无记录log里显示invalid auth_code原因auth_code是一次性票据5分钟过期。常见于① 用户授权后没立刻点“完成”拖太久② 服务器时间比微信服务器慢超过5分钟微信用UTC8你的服务器必须NTP校时③ 代码里调用api_query_auth时component_access_token本身已过期却没刷新。解决先执行php think refresh_token --force强制刷新所有token再检查服务器时间date -R若偏差30秒运行sudo ntpdate -s time.windows.com校准。4.3 现象api_create_preauthcode返回{errcode:48002,errmsg:api unauthorized hint: [UqyZwa08254111]原因微信平台未通过资质审核或component_appid/component_appsecret填错。特别注意component_appid是「公众号第三方平台」的AppID不是某个具体公众号的AppID。解决登录微信开放平台 → 「公众号第三方平台」→ 点击你的平台名称 → 查看右上角状态是否为「已认证」再核对common.php里WECHAT_COMPONENT_APPID是否复制完整注意有无空格、换行。4.4 现象授权成功后调用公众号接口如/cgi-bin/user/info返回{errcode:40001,errmsg:invalid credential, access_token is invalid or not latest}原因authorizer_access_token已过期但refreshAuthorizerToken()方法没被触发。本项目默认只在用户访问/authorize/refresh时手动刷新未开定时任务。解决执行crontab -e添加一行*/30 * * * * cd /path/to/your/project php think refresh_token /dev/null 21每30分钟自动刷新一次。4.5 现象func_info字段存入数据库后是空字符串或NULL原因微信返回的func_info是数组json_encode()时若含中文或特殊字符mysql_real_escape_string()ThinkPHP 5.1默认可能截断。解决在Authorizer.php的saveAuthInfo()方法中将func_info json_encode($data[func_info], JSON_UNESCAPED_UNICODE)改为func_info addslashes(json_encode($data[func_info], JSON_UNESCAPED_UNICODE))或直接升级ThinkPHP到5.1.40该版本已修复JSON字段转义问题。5. 二次开发实战3个高频改造需求与对应代码片段5.1 需求授权后自动同步公众号菜单并支持多套模板切换很多SaaS产品需要为不同客户生成不同菜单。本项目预留了state参数即targetshop123正好用来关联客户ID。改造思路在Authorize.php的callback()方法末尾新增菜单同步逻辑// /application/controller/Authorize.php callback() 方法末尾追加 $authorizerAppid $authInfo[authorizer_appid]; $accessToken $authInfo[authorizer_access_token]; // 根据state查客户配置 $customer Db::name(customer)-where(code, $state)-find(); if ($customer $customer[menu_template]) { $menuData json_decode(file_get_contents(./template/menu_ . $customer[menu_template] . .json), true); $menuUrl https://api.weixin.qq.com/cgi-bin/menu/create?access_token{$accessToken}appid{$authorizerAppid}; $result json_decode(curl_post($menuUrl, json_encode($menuData, JSON_UNESCAPED_UNICODE)), true); if (isset($result[errcode]) $result[errcode] 0) { Log::info(Menu synced for {$authorizerAppid} using template {$customer[menu_template]}); } }关键点menu_template字段存在customer表中值为default/ecommerce/service等对应JSON模板放在/template/目录下结构完全遵循微信菜单API规范。这样客户开通时只需在后台选模板无需写代码。5.2 需求支持扫码关注后自动绑定公众号实现“免授权”冷启动有些客户不愿走授权流程希望用户扫二维码就关注并绑定。这需要结合微信「带参二维码」「关注事件推送」。改造步骤在Authorize.php新增qrcode()方法调用https://api.weixin.qq.com/cgi-bin/qrcode/create生成永久二维码scene_str设为bind_{$authorizerAppid}微信会向你配置的「服务器配置」URL推送Eventsubscribe且EventKeyqrscene_bind_xxx的消息在callback()方法里增加对EventKey的判断// 在 callback() 中解析XML后追加 if ($xmlObj-Event subscribe strpos($xmlObj-EventKey, qrscene_bind_) 0) { $boundAppid str_replace(qrscene_bind_, , $xmlObj-EventKey); Db::name(authorizer)-where(authorizer_appid, $boundAppid)-update([is_bound 1, bind_time time()]); echo success; exit; }注意此功能需提前在微信公众号后台开启「开发者模式」并配置服务器URL且subscribe事件推送必须在「基本配置」里勾选「关注事件」。5.3 需求将授权数据导出为Excel供运营同学做客户分析ThinkPHP 5.1原生不带Excel导出但用phpoffice/phpspreadsheet极简集成。执行composer require phpoffice/phpspreadsheet后在Authorize.php新增export()方法use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; public function export() { $list Db::name(authorizer)-field(authorizer_appid,create_time,update_time,func_info)-select(); $spreadsheet new Spreadsheet(); $sheet $spreadsheet-getActiveSheet(); $sheet-fromArray([公众号AppID, 首次授权时间, 最后更新时间, 开通功能], NULL, A1); foreach ($list as $k $v) { $func json_decode($v[func_info], true); $funcNames array_column($func, funcscope_category_id); $sheet-fromArray([ $v[authorizer_appid], date(Y-m-d H:i:s, $v[create_time]), date(Y-m-d H:i:s, $v[update_time]), implode(,, $funcNames) ], NULL, A . ($k 2)); } header(Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet); header(Content-Disposition: attachment;filenameauthorizer_export_ . date(YmdHis) . .xlsx); $writer new Xlsx($spreadsheet); $writer-save(php://output); }血泪经验funcscope_category_id是微信定义的功能ID如1为消息管理2为用户管理导出时转成中文名更直观但本项目保持ID输出因为运营系统可对接内部字典表做映射避免硬编码。6. 我的改造习惯每次加新功能前必做的3个验证动作从接手第一个微信代授权项目到现在我养成了一个雷打不动的习惯只要动了Authorize.php或Authorizer.php发布前一定走完这三步省得半夜被客户电话叫醒。第一本地构造最小闭环。不依赖真实微信用Postman模拟callback请求POST /authorize/callbackBody选raw/XML粘贴一段合法的授权回调XML从log里复制把auth_code换成刚生成的、未使用的code。如果这一步数据库能写入且日志显示[INFO] Auth success for xxx说明核心链路没断。第二强制触发一次token刷新。执行php think refresh_token --appidwx1234567890abcdef观察runtime/log/wechat.log里是否有[INFO] Refreshed token for wx123...和[INFO] API response: {errcode:0,errmsg:ok}。很多线上问题其实是authorizer_refresh_token失效了但没人主动刷直到某天客户说“发不了消息”才想起查日志。第三用curl直调公众号接口验证。挑一个刚授权的公众号从数据库取出它的authorizer_access_token然后执行curl https://api.weixin.qq.com/cgi-bin/user/get?access_tokenxxxnext_openid | python -m json.tool如果返回total字段是数字比如total: 123说明token有效、网络通、权限够如果返回errcode:40001立刻去看refresh_token是否过期而不是怀疑代码逻辑。这三步做完我才敢把代码推到测试环境。不是怕出错而是怕出错后定位太慢——微信生态里90%的问题都卡在配置、时效、权限这三个点上跟业务代码关系不大。从那以后我每次改微信相关模块都强制走一遍这三步哪怕只是改了个日志级别。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

脑PET图像疾病预测Python源码工程全流程解析

脑PET图像疾病预测Python源码工程全流程解析

简介:面向基于Python机器学习的脑PET图像分析与疾病预测任务,这套资源提供一套可运行的工程,包含模型训练、预测、图像裁剪与配置模块,适合计算机相关专业学生用于课程设计、毕业设计或实训作业,也适合医学图像入门者对…

2026/10/18 20:06:42 阅读更多 →
从小白到白帽黑客:12个步骤构建网络安全技能树

从小白到白帽黑客:12个步骤构建网络安全技能树

这篇内容确实很敏感,所谓“黑客”一词在公众认知里边界模糊,我在下笔前需要把它重新定位成“白帽安全研究”的合法路径。我的写作思路是:标题直接点明语境转换,开头就划清合法与非法的界线,把核心叙事锚定在防御性安全…

2026/10/18 20:05:41 阅读更多 →
后端开发必备Linux命令实战:日志排查、进程管理与网络调试

后端开发必备Linux命令实战:日志排查、进程管理与网络调试

干这行越久,越觉得后端开发其实有一半时间不是在写代码,而是在跟命令行打交道。不管是查日志定位线上问题、看服务进程还在不在、端口被谁占了、还是往服务器部署新版本,绕来绕去都是那几十条 Linux 命令。很多刚入行的同事喜欢装个图形面板&…

2026/10/18 20:05:41 阅读更多 →

最新新闻

knowledge-work-plugins 实战:Claude Code 插件安装配置与知识工作自动化

knowledge-work-plugins 实战:Claude Code 插件安装配置与知识工作自动化

1. 从零认识 knowledge-work-plugins:它到底解决什么问题第一次看到knowledge-work-plugins这个仓库名,很多人会以为它又是一个“插件合集”,点进去才发现它其实是一套围绕知识工作场景设计的扩展体系。简单说,它把日常重复性的知…

2026/10/18 21:10:39 阅读更多 →
langgraph-cua 是什么:用 LangGraph 编排 CUA 的 Python 实战入门

langgraph-cua 是什么:用 LangGraph 编排 CUA 的 Python 实战入门

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 21:10:38 阅读更多 →
Qt中十六进制字符串转float的正确姿势:位重解释而非数值转换

Qt中十六进制字符串转float的正确姿势:位重解释而非数值转换

简介:本资源是一份面向嵌入式开发、工业通信及Qt应用工程师的底层数据解析实战教程,聚焦4字节十六进制数到IEEE 754单精度float浮点数的原理剖析与Qt环境下的可靠实现。内容涵盖位结构拆解(符号位/指数/尾数)、大小端适配要点、内…

2026/10/18 21:10:38 阅读更多 →
Linux内核态状态防火墙设计与实现:红黑树+Netlink课设范本

Linux内核态状态防火墙设计与实现:红黑树+Netlink课设范本

简介:本资源是一套完整的Linux内核级状态检测防火墙课程设计项目,面向计算机、网络安全、人工智能等专业的在校学生、教师及初学者,解决传输层报文过滤与连接状态管理的学习实践需求,可直接用于课程设计、毕业设计、实验教学或安全…

2026/10/18 21:10:38 阅读更多 →
RRT*与GJK融合的实时机器人路径规划实现

RRT*与GJK融合的实时机器人路径规划实现

简介:本资源是一套基于Python实现的改进型RRT路径规划算法源码,面向机器人导航、自动驾驶及智能体运动规划领域的研究者与工程开发者,聚焦解决传统RRT在复杂环境(如狭窄通道、高维空间)中扩展效率低、路径非最优、动态…

2026/10/18 21:10:38 阅读更多 →
百度AI自然语言处理接口实战:从分词到情感分析的完整指南

百度AI自然语言处理接口实战:从分词到情感分析的完整指南

百度AI的自然语言处理接口,我在实际项目里前前后后用了很长时间,从最早的词法分析,一路用到后来的短文本相似度、情感分析和文本纠错。今天想把整个使用过程完整整理一遍,从账号准备、鉴权流程、核心接口拆解,到真实项…

2026/10/18 21:09:37 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →