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

如何强制OAuth2获取YouTube API数据并默认勾选权限选项?

解决Google OAuth2登录时强制选中YouTube权限勾选框的问题

你遇到的是Google OAuth2授权页面默认不勾选额外API权限的问题,以下是具体解决方案:

  1. 移除setIncludeGrantedScopes(true)配置
    这个参数用于增量授权,会让Google自动跳过用户已授权过的权限,但首次登录时用户无任何授权记录,它反而会导致授权页面将非基础权限(比如youtube.readonly)标记为可选、默认不勾选。删掉这个配置后,授权页面会把所有请求的权限都列为需要确认的项。

  2. 保留强制授权配置
    你已经设置的setApprovalPrompt('force')是正确的,它会强制用户每次登录都确认权限,避免跳过权限确认步骤。

调整后的代码如下:

$google_client = new Google_Client();
//auth
$google_client->setClientId(ClientID);
$google_client->setClientSecret(SecretKey);

$google_client->setRedirectUri('https://example.com');
$google_client->setAccessType('offline');
$google_client->setApprovalPrompt('force');
// 移除setIncludeGrantedScopes(true)配置
$google_client->addScope(array(
    'email', 'profile', 'https://www.googleapis.com/auth/youtube.readonly'
));
  1. 额外验证权限是否授权成功
    即使做了以上调整,Google仍允许用户手动取消勾选YouTube权限,所以用户授权完成后,你需要检查返回的access token是否包含youtube.readonly权限:
  • 调用Google Token Info接口获取权限列表(传入用户的access token)
  • 如果未包含目标权限,引导用户重新发起授权请求

注意:Google授权页面的设计逻辑中,非基础API权限默认处于未勾选状态,开发者无法直接强制勾选,但通过上述步骤可以让该权限成为用户必须确认的选项,同时后续验证能确保只有授权了该权限的用户才能使用相关功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:35:50