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

如何通过Mindbody API(Python)获取演示客户及请求空响应问题求助

如何通过Mindbody API(Python)获取演示客户及请求空响应问题求助

看起来你在调用Mindbody的Get Clients接口获取演示客户时碰上空响应的问题了,我来帮你捋捋可能的问题点和解决办法~

你的问题背景

你已经创建了基础开发者账号并拿到API Key,调用官方的Get Clients接口时使用了演示站点ID -99,但返回的响应里Clients是空数组,TotalResults=0,完全拿不到测试客户数据。

先看你当前请求里的几个明显问题

  1. 无效的占位符参数:你的curl请求里有request.clientIDs[0]=request.clientIDs9、request.searchText=request.searchText0这类参数,这些都是文档里的示例占位符,不是演示站点的真实客户ID/搜索值,直接用这些会过滤掉所有真实数据。
  2. 分页参数设置错误:你设置了offset=100,但演示站点-99的预设测试客户数量很少,直接跳转到第100条数据之后的页,自然找不到结果。
  3. Authorization头格式可能有误:Mindbody的API要求Authorization头格式为Bearer <JWT Token>,但你的请求里直接放了JWT字符串,缺少Bearer 前缀,这可能导致权限验证异常,进而返回空数据。
  4. 冗余过滤条件:同时指定clientIDs、searchText、uniqueIds多个过滤条件,会进一步缩小结果范围,甚至直接过滤掉所有演示数据。

解决步骤 & 修正后的请求示例

第一步:简化请求,先获取所有演示客户

先去掉所有过滤参数,把offset设为0,只保留必要的分页和状态参数,确保能拿到演示站点的基础测试数据。

第二步:用Python重写修正后的请求

下面是修正后的Python请求代码(用requests库,记得先安装pip install requests):

import requests

# 接口地址
api_url = "https://api.mindbodyonline.com/public/v6/client/clients"

# 请求头:注意Authorization头加上Bearer前缀
headers = {
    "Accept": "application/json",
    "siteId": "-99",
    "Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWJzY3JpYmVySWQiOiItOTkiLCJpZCI6IjE2NDE4NjMiLCJsb2dpbiI6Im1pbmRib2R5c2FuZGJveDk5QGdtYWlsLmNvbSIsImFjY2VzcyI6IlN0YWZmIiwiZXhwIjoxNzMxMjUxMTY4LCJuYmYiOjE3MzExNjQ3Njh9.xSmMWoQaNlvnEbth2UQeiGx-ZFNoVskEdWLPcu9CnmE",
    "API-Key": "2799edb2d39f4eb9b7cb1a817fda0f08"
}

# 简化后的参数:只保留分页和状态参数
params = {
    "offset": 0,
    "limit": 20,
    "includeInactive": False,
    "isProspect": False
}

# 发送请求并打印结果
response = requests.get(api_url, headers=headers, params=params)
print("响应状态码:", response.status_code)
print("响应数据:", response.json())

第三步:如果需要指定客户ID,先获取真实测试ID

当你通过简化请求拿到演示客户的真实ID后,再添加clientIDs参数进行过滤,比如:

# 在params里添加clientIDs参数
params = {
    "offset": 0,
    "limit": 20,
    "includeInactive": False,
    "isProspect": False,
    "clientIDs": "1,2,3"  # 替换成你拿到的真实演示客户ID
}

其他需要注意的点

  • 检查JWT Token是否过期:你的Token过期时间是1731251168(对应北京时间2024-11-10左右),如果已经过期,需要重新通过OAuth2流程生成有效的Access Token。
  • 核对API版本兼容性:你用的是v6版本,确保参数命名和格式符合v6文档的要求(比如有些旧版本用request.clientIDs,v6可能直接用clientIDs)。
  • 演示站点数据固定:Mindbody的-99演示站点有预设的测试客户,简化请求后肯定能拿到数据,如果还是空,优先检查Token有效性和请求头格式。

你的原始请求(curl)

curl -X GET -G \
  --url 'https://api.mindbodyonline.com/public/v6/client/clients'  \
  -H 'Accept: application/json' \
  -H 'siteId: -99' \
  -H 'authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWJzY3JpYmVySWQiOiItOTkiLCJpZCI6IjE2NDE4NjMiLCJsb2dpbiI6Im1pbmRib2R5c2FuZGJveDk5QGdtYWlsLmNvbSIsImFjY2VzcyI6IlN0YWZmIiwiZXhwIjoxNzMxMjUxMTY4LCJuYmYiOjE3MzExNjQ3Njh9.xSmMWoQaNlvnEbth2UQeiGx-ZFNoVskEdWLPcu9CnmE' \
  -H 'API-Key: 2799edb2d39f4eb9b7cb1a817fda0f08' \
  -d 'request.clientIDs[0]=request.clientIDs9' \
  -d 'request.clientIDs[1]=request.clientIDs0' \
  -d 'request.clientIDs[2]=request.clientIDs1' \
  -d 'request.includeInactive=false' \
  -d 'request.isProspect=false' \
  -d 'request.lastModifiedDate=2016-03-13T12%3A52%3A32.123Z' \
  -d 'request.limit=62' \
  -d 'request.offset=100' \
  -d 'request.searchText=request.searchText0' \
  -d 'request.uniqueIds[0]=123' \
  -d 'request.uniqueIds[1]=124' \
  -d 'request.uniqueIds[2]=125'

你的原始响应

{"PaginationResponse":{"RequestedLimit":62,"RequestedOffset":100,"PageSize":0,"TotalResults":0},"Clients":[]}

备注:内容来源于stack exchange,提问作者Omer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 09:37:59