Skip to content

请求确认 OpenAPI OAuth Scope 契约及稳定证券账户唯一标识 #1252

Description

@yangminooo1982-source

主题:请求确认 OpenAPI OAuth Scope 契约及稳定证券账户唯一标识

您好,我正在开发一个 Longbridge OpenAPI 半自动交易系统,目前已完成只读账户接入、人工审批、状态机、持久化、幂等、二次行情/持仓验证和 Dry Run 安全审计。

在进入任何真实订单设计前,目前有两个协议层 blocker,希望请 OpenAPI 工程师明确确认。

一、OAuth 最小权限问题

Longbridge Agent Auth 页面允许用户选择 Market Data、Account、Trading 权限。

但当前 Python SDK longbridge==4.5.0 的 OAuthBuilder 没有公开 scope 参数,并且我们没有找到官方文档说明自定义 OAuth Client 应使用哪些正式 scope 值,也没有找到可靠的 token scope introspection API。

请确认:

Market Data、Account、Trading 三类权限对应的正式 OAuth scope 值/名称分别是什么?
自行注册的 OAuth Client 应如何明确请求“Market Data + Account,但不包含 Trading”?
是否有官方 token introspection endpoint 或 SDK API,可以确认当前 Token 实际拥有的权限?
如果没有 introspection,官方推荐应用如何证明一个 Token 不具备交易写权限?

我们不会通过尝试真实下单来测试 Trading 权限是否缺失。

二、稳定证券账户唯一标识问题

我们已经检查当前 Python SDK 4.5.0、公开 OpenAPI schema,并直接通过 OAuth RAW REST 查询:

/v1/asset/account
/v1/asset/stock
/v1/asset/fund
/v1/statement/list

当前真实账户响应中均未发现:

aaid
account_id
account_no
security_account_id
brokerage_account_id

account_channel 可以看到,但官方文档定义其为 Account Type,因此我们没有把它当作唯一账户 ID。

请确认:

Longbridge OpenAPI 是否存在官方保证稳定、唯一、长期可用的 Brokerage/Security Account Identifier?
如果是 aaid,请确认它的正式语义,以及是否保证跨 session、OAuth refresh 和重新登录保持稳定。
同一 Unified Account 下如果有多个 Brokerage/Security Account,它们是否分别具有不同的稳定 ID?
account_balance、stock_positions 与最终 submit_order 是否使用同一个账户身份上下文?
真实订单提交接口是否允许显式指定账户 ID,还是完全由 OAuth Token 的 Account Context 决定?
如果订单接口不允许传账户 ID,Longbridge 官方建议第三方应用如何防止用户在同一 OAuth subject 下切换子账户后,将已审批订单误提交到另一证券账户?
有没有官方推荐的账户身份字段,可以在“Proposal 创建时”和“真实下单前立即复核时”证明仍然是同一个具体证券账户?

背景说明

当前系统已能正常读取真实账户约 15 个美股持仓和账户资产;问题不是账户数据读取失败,而是我们在进行真实交易安全设计前,需要获得官方可依赖的权限和账户身份契约。

在上述两个问题得到正式确认以前,我们的系统会保持 DRY RUN,并且不会实现任何真实订单写入接口。

希望此问题能升级给熟悉 OAuth/OpenAPI 协议与账户路由的工程师确认。谢谢。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions