Python调用TikTok API获取营销活动及广告报表时遇权限错误
解决TikTok API 40102权限错误(获取广告报表数据)
权限排查步骤
- 确认API权限范围:当前应用权限可能仅包含
campaign_read,但获取报表数据需要额外权限,比如ads_report_read(核心报表权限)、conversion_read(转化数据权限)。前往TikTok开发者后台的应用权限页面检查,确保已申请并获批这些权限。 - 验证广告账户关联:确认应用已正确关联目标广告账户,且账户状态正常(未被限制)。在TikTok Ads Manager中检查账户的API访问授权状态,确保该账户已授权给你的应用。
- 检查Token权限:调用API使用的access token需包含对应报表权限的scope。可通过调用
/oauth2/access_token/info接口验证token的权限范围,确认是否包含所需的报表类权限。
修正后的Python代码示例
import requests # 配置信息 ACCESS_TOKEN = "你的访问令牌" AD_ACCOUNT_ID = "你的广告账户ID" API_BASE_URL = "https://business-api.tiktok.com/open_api/v1.3" def get_ad_report(): endpoint = f"{API_BASE_URL}/report/integrated/get/" headers = { "Access-Token": ACCESS_TOKEN, "Content-Type": "application/json" } payload = { "advertiser_id": AD_ACCOUNT_ID, "data_level": "CAMPAIGN", # 按活动维度获取数据 "metrics": ["clicks", "total_cost", "conversions", "impressions", "cpm", "cpc"], "start_date": "2024-01-01", "end_date": "2024-01-31", "dimensions": ["campaign_id", "campaign_name"] } response = requests.post(endpoint, json=payload, headers=headers) if response.status_code == 200: return response.json() else: print(f"请求失败: {response.json()}") return None # 调用示例 report_data = get_ad_report() if report_data: print("报表数据获取成功:") print(report_data)
额外注意事项
- 权限申请流程:若缺少权限,需在TikTok开发者后台提交权限申请并说明使用场景,等待平台审核通过。
- 数据维度匹配:确保
metrics和dimensions的组合符合TikTok API要求,避免因参数不合法导致隐性权限问题。 - Token有效期:access token存在有效期,过期后需重新刷新,否则也会触发权限类错误。
内容的提问来源于stack exchange,提问作者Disha Sood
相关产品推荐
相关产品推荐

