如何在CodeIgniter中上传视频至YouTube?授权报错求助
解决CodeIgniter YouTube上传库的授权错误问题
我之前也碰到过类似的授权卡壳问题,咱们一步步来排查解决:
1. 确认Google API凭据配置准确
首先得把Google Cloud Console里的OAuth 2.0凭据配置对:
- 登录Google Cloud Console,找到你的项目,进入「API和服务」→「凭据」
- 创建「OAuth客户端ID」,应用类型选「Web应用」,重定向URI必须和库中配置的完全一致(比如你的项目回调URL:
http://你的域名.com/youtube/auth_callback) - 把生成的
client_id、client_secret精准填入库的配置文件(一般是config/youtube.php这类文件)
2. 走完整的授权流程
这个库的逻辑是必须先完成授权,才能调用上传接口:
- 先访问授权入口(比如控制器里的
auth方法),不能直接跳去上传 - 访问授权URL后,会跳转Google登录页,登录并授权你的应用,完成后会回调到项目里存储token
- 跳过这一步直接上传,必然会触发「You need to authorize access before proceeding.」的错误
3. 验证Token存储是否正常
库通常会把授权后的access token和refresh token存在session或数据库里:
- 检查CodeIgniter的session配置是否正常,确保能存储数据
- 如果用数据库存token,确认对应的数据表已创建且有读写权限
- 可以在回调方法里打印返回的token,看看是否成功获取到了有效内容
4. 规范代码调用顺序
确保你的代码调用逻辑是正确的:
// 先触发授权(首次访问时调用) public function auth() { $this->load->library('youtube'); $this->youtube->auth(); } // 授权完成后再执行上传 public function upload_video() { $this->load->library('youtube'); // 先检查是否已授权 if (!$this->youtube->get_access_token()) { redirect('youtube/auth'); // 未授权就跳去授权页 } // 执行上传逻辑 $upload_response = $this->youtube->upload_video($视频路径, $视频标题, $视频描述); }
5. 确认YouTube Data API已启用
别忘在Google Cloud Console里开启「YouTube Data API v3」:
- 进入「API和服务」→「库」,搜索YouTube Data API v3,点击启用
如果以上步骤都检查过还是有问题,可以试试清除浏览器缓存和项目session,重新走一遍授权流程,有时候缓存的旧token会导致异常。
内容的提问来源于stack exchange,提问作者user3775412
相关产品推荐
相关产品推荐

