本页按 OAuth 2.0 实际接入流程 重新整理,用于新接入用户快速走通。

提示: 优先使用 SDK,接入更简单:https://open.longbridge.com/sdk

API 须知

注意事项 参考文档
推荐使用各自语言的 SDK,而不是调用原生的接口 SDK 快速开始页面
阅读 OpenAPI 介绍中开通相应服务 OpenAPI 如何开通
阅读 OpenAPI 介绍中使用权限及限制 OpenAPI 使用权限及限制
了解通用错误码,便于查找调用接口出错的原因 通用错误码

OAuth 2.0(推荐方案)

新接入默认使用 OAuth 2.0。API Key 签名方式作为备选兼容方案可保留(例如在 SDK/历史实现中),但不作为默认接入方式。

Discovery 地址

  • 生产环境:https://openapi.longbridge.com/.well-known/oauth-authorization-server
  • 中国内地:https://openapi.longbridge.cn/.well-known/oauth-authorization-server

支持授权类型(以 Discovery 返回为准):

  • authorization_code
  • refresh_token

OAuth 2.0 授权流程

注册 OAuth 客户端

如果没有可视化后台入口,可通过接口动态注册:

curl -X POST https://openapi.longbridge.com/oauth2/register \
  -H "Content-Type: application/json" \
  -d '{
    "client_name": "my-openapi-app",
    "redirect_uris": ["https://your-app.com/callback"],
    "grant_types": ["authorization_code", "refresh_token"],
    "response_types": ["code"]
  }'

注册返回可能仅包含 client_id(public client,不返回 client_secret)。这种情况下请使用 PKCE,并在 token 请求里不传 client_secret。

构造授权链接并获取 code

https://openapi.longbridge.com/oauth2/authorize
  ?response_type=code
  &client_id=YOUR_CLIENT_ID
  &redirect_uri=YOUR_REDIRECT_URI
  &scope=3
  &state=YOUR_RANDOM_STATE
  &code_challenge=YOUR_CODE_CHALLENGE
  &code_challenge_method=S256

用户授权后,回调地址会收到:

YOUR_REDIRECT_URI?code=AUTH_CODE&state=YOUR_RANDOM_STATE

用 code 换 access_token

curl -X POST https://openapi.longbridge.com/oauth2/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "redirect_uri=YOUR_REDIRECT_URI" \
  -d "code=AUTH_CODE" \
  -d "code_verifier=YOUR_CODE_VERIFIER"
# 仅当客户端有 secret 时再加:
# -d "client_secret=YOUR_CLIENT_SECRET"

用 Bearer token 调 API(TSLA.US 实例)

curl -X GET "https://openapi.longbridge.com/v1/quote/get_security_list?market=US&category=Overnight" \
  -H "Authorization: Bearer ACCESS_TOKEN"

实际返回(节选,保留 TSLA.US 项):

{
  "code": 0,
  "message": "success",
  "data": {
    "list": [
      {
        "symbol": "TSLA.US",
        "name_cn": "特斯拉",
        "name_hk": "",
        "name_en": ""
      }
    ]
  }
}

刷新 token

通过 OAuth token endpoint 刷新(详见下方"刷新 Token"部分):

curl -X POST https://openapi.longbridge.com/oauth2/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=refresh_token" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "refresh_token=REFRESH_TOKEN"
# 仅当客户端有 secret 时再加:
# -d "client_secret=YOUR_CLIENT_SECRET"

与旧文档的关系

  • 本页:只讲 OAuth 2.0 主流程(新接入默认看这里)。
  • 下方"刷新 Token"部分:只讲刷新步骤细节与常见问题,避免重复。

刷新 Token(OAuth 2.0)

本页仅说明 OAuth 2.0 的 refresh token 刷新步骤。

  • 如果你还没走完完整授权流程,请先看上方认证部分。
  • 本页不重复注册 client / 获取 code 的流程,只关注"刷新"这一步

推荐刷新方式(OAuth 2.0)

使用 OAuth token endpoint:

  • POST https://openapi.longbridge.com/oauth2/token
  • 或中国内地:POST https://openapi.longbridge.cn/oauth2/token

请求参数(application/x-www-form-urlencoded)

名称 必须 说明
grant_type 是 固定为 refresh_token
client_id 是 OAuth client id
refresh_token 是 上一次签发的 refresh token
client_secret 否 仅机密客户端需要;public client 不传

刷新示例

curl -X POST https://openapi.longbridge.com/oauth2/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=refresh_token" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "refresh_token=YOUR_REFRESH_TOKEN"
# 仅当你的客户端有 secret 时再加:
# -d "client_secret=YOUR_CLIENT_SECRET"

响应示例

{
  "access_token": "...",
  "refresh_token": "...",
  "expires_in": 2592000,
  "token_type": "Bearer"
}

兼容说明

历史接口 /v1/token/refresh 属于旧方案兼容路径,不建议新接入继续采用。新接入请统一使用 OAuth 2.0 token endpoint。