Upwork公开API获取代理每周工时数据遇权限及接口问题咨询
问题:通过Upwork公开OAuth2 API获取代理每周工时表数据的官方方法
我正尝试通过OAuth2(官方公开API)从Upwork获取代理每周工时表数据。已成功以在UI中拥有访问权限的用户身份完成授权,并可通过租户请求头切换组织上下文。
环境
- 公开端点:
https://api.upwork.com/graphql - OAuth2:用户令牌(
oauth2v2_pub_*) - 租户请求头:
X-Upwork-API-TenantId: <AGENCY_ORG_ID> - 开发库:
python-upwork-oauth2
正常可用操作
**whoami**查询显示租户上下文已正确切换:
query { user { id nid } organization { id rid name } }
- 未携带租户请求头 → 个人组织
- 携带租户请求头 → 代理组织(符合预期)
公开API失败场景
1) timeReport / contractTimeReport返回403操作拒绝
查询语句:
query($filter: TimeReportFilter!) { timeReport(filter: $filter) { totalHoursWorked } }
变量:
{ "filter": { "organizationId_eq": "<AGENCY_ORG_ID>", "timeReportDate_bt": { "rangeStart": "20260406", "rangeEnd": "20260407" } } }
错误信息:
User <NID> has no access of any team(s) for [view_gds_hourly_data_from_client, view_gds_charges_data_from_client] action(s)
2) workDiaryCompany返回空数据(无错误)
查询语句:
query($input: WorkDiaryCompanyInput!) { workDiaryCompany(workDiaryCompanyInput: $input) { total snapshots { user { id name } contract { id contractTitle } durationInt } } }
变量:
{ "input": { "companyId": "<AGENCY_COMPANY_UID>", "date": "20260406" } }
响应:snapshots=[],无错误(多个日期含长时段范围均如此)
困惑点
Upwork UI使用的内部Web端点:https://www.upwork.com/api/graphql/v1?alias=agencyCompanyTimeReport(通过浏览器会话/oauth2v2_int_*令牌),针对相同日期范围和代理公司UID可返回正确的代理数据行。
但在公开API schema(api.upwork.com/graphql)中,agencyCompanyTimeReport不可用(返回FieldUndefined)。
补充:授权所用用户在代理中已被授予所有角色:团队工时日志访问、全公司聊天访问、仅团队聊天访问、代理专属承包商、代理经理、账户管理员、财务管理员、API密钥管理员。
核心问题
在以下情况下,获取按自由职业者分类的代理每周汇总数据(工时/费用/合同)的官方支持公开API方法是什么:
timeReport遭团队操作权限拒绝,contractTimeReport同样被拒绝,workDiaryCompany返回空数据,- 且
agencyCompanyTimeReport仅存在于内部Web GraphQL中?
这严格是Upwork侧的权限配置问题,还是该数据路径根本无法通过公开API访问?
内容的提问来源于stack exchange,提问作者Andrey Iskoskov
相关产品推荐
相关产品推荐

