本页按 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_coderefresh_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。