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

无法通过App Store Connect API获取订阅报告(报400错误)

解决App Store Connect API订阅报告400错误问题

可能的问题点及修复方案

1. 移除多余的请求头

你的请求使用GET方法,却设置了Content-Type: application/json,这个头对GET请求完全不必要,苹果API可能会因此返回400错误。直接移除该头:

修正后的请求头代码:

headers = {
    'Authorization': f'Bearer {gen_jwt}',
}

2. 修正参数组合的合法性

SUBSCRIPTION_EVENT类型报告对参数搭配有严格要求,需确保符合苹果规范:

  • 当reportType=SUBSCRIPTION_EVENT时,reportSubType只能是DETAILED,SUMMARY仅适用于销售类报告
  • 确认reportDate满足延迟要求:订阅事件的日度报告通常需要1-2天的生成时间,不能请求当天或昨日的日期(比如2023-05-01需确保苹果已生成该日期的报告)

修正后的参数代码:

params = {
    'filter[frequency]': 'DAILY',
    'filter[reportType]': 'SUBSCRIPTION_EVENT',
    'filter[reportSubType]': 'DETAILED',
    'filter[reportDate]': '2023-04-30'
}

3. 验证API密钥权限

虽然你能获取销售报告,但订阅事件报告需要额外权限:确认你的API密钥在App Store Connect中被分配了Sales and Reports权限,且关联用户角色拥有查看订阅数据的权限。

4. 查看具体错误信息

如果以上调整后仍报错,打印response.text获取苹果返回的详细错误提示,通常会明确指出参数不合法、权限不足等具体问题,再针对性排查。

测试修正后的完整代码

import requests
import datetime
import json
import gzip

gen_jwt = "你的JWT令牌"  # 替换为实际生成的JWT
api_endpoint = 'https://api.appstoreconnect.apple.com/v1/salesReports'
headers = {
    'Authorization': f'Bearer {gen_jwt}',
}
params = {
    'filter[frequency]': 'DAILY',
    'filter[reportType]': 'SUBSCRIPTION_EVENT',
    'filter[reportSubType]': 'DETAILED',
    'filter[reportDate]': '2023-04-30'
}

response = requests.get(api_endpoint, headers=headers, params=params)
print(response.status_code)
print(response.text)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:42:55