解决Google Analytics Data的PERMISSION_DENIED认证权限不足问题
解决
PERMISSION_DENIED: Request had insufficient authentication scopes 错误 问题根源
你的代码中已正确配置权限范围,但创建AlphaAnalyticsDataClient时未使用这个配置好的凭证,客户端默认调用未授权的默认凭证,导致触发权限不足错误。
修正方案
需要通过AlphaAnalyticsDataSettings将自定义凭证传入客户端,替换原有的无参AlphaAnalyticsDataClient.create()调用:
修改后的完整代码:
// imports... // @Slf4j @Service public class AnalyticsDataV4Service implements IAnalyticsDataV4Service{ @Override public boolean Test() { try { FileInputStream credentialsFile = new FileInputStream("path\\to\\credentials.json"); GoogleCredentials credentials = ServiceAccountCredentials.fromStream(credentialsFile); ImmutableList<String> scopes = ImmutableList.of("https://www.googleapis.com/auth/analytics.readonly"); credentials = credentials.createScoped(scopes); // 核心修改:用自定义凭证构建客户端配置 AlphaAnalyticsDataSettings settings = AlphaAnalyticsDataSettings.newBuilder() .setCredentialsProvider(FixedCredentialsProvider.create(credentials)) .build(); // 使用配置好的settings创建客户端 try (AlphaAnalyticsDataClient alphaAnalyticsDataClient = AlphaAnalyticsDataClient.create(settings)) { RunFunnelReportRequest request = RunFunnelReportRequest.newBuilder() .setProperty("property-<<my-property>>") .addAllDateRanges(new ArrayList<DateRange>()) .setFunnel(Funnel.newBuilder().build()) .setFunnelBreakdown(FunnelBreakdown.newBuilder().build()) .setFunnelNextAction(FunnelNextAction.newBuilder().build()) .addAllSegments(new ArrayList<Segment>()) .setLimit(102976443) .setDimensionFilter(FilterExpression.newBuilder().build()) .setReturnPropertyQuota(true) .build(); RunFunnelReportResponse response = alphaAnalyticsDataClient.runFunnelReport(request); log.info("Response: {}", response); return true; } catch (Exception ex) { log.info("Error: {}", ex.getCause()); ex.printStackTrace(); return false; } } catch (Exception ex){ log.info("Error: {}", ex.getCause()); ex.printStackTrace(); return false; } } }
额外检查项
- 确认服务账号已添加到GA4属性的用户列表,且授予Viewer或更高权限(GA4后台路径:管理 > 访问权限与管理 > 访问权限 > 添加用户)。
- 验证
credentials.json文件对应正确的服务账号,且文件路径无误。
内容的提问来源于stack exchange,提问作者Giovane Neves
相关产品推荐
相关产品推荐

