4.3 KiB
4.3 KiB
腾讯文档同步物流使用说明
功能概述
系统已配置好腾讯文档开放平台的应用信息,实现了自动获取和管理访问令牌的功能。用户只需完成首次授权,后续系统会自动使用有效的访问令牌。
配置信息
应用信息已配置在 application-dev.yml 中:
- 应用ID:
90aa0b70e7704c2abd2a42695d5144a4 - 应用密钥:
G8ZdSWcoViIawygo7JSolE86PL32UO0O
首次授权流程
1. 获取授权URL
访问接口获取授权URL:
GET /jarvis/tendoc/authUrl
或者直接在浏览器访问:
https://docs.qq.com/oauth/v2/authorize?client_id=90aa0b70e7704c2abd2a42695d5144a4&redirect_uri=YOUR_CALLBACK_URL&response_type=code&scope=all&state=RANDOM_STATE
2. 完成授权
- 在授权页面完成授权
- 授权成功后,腾讯文档会重定向到回调地址
- 系统会自动保存访问令牌到Redis,无需手动操作
3. 验证授权
访问接口检查token状态:
GET /jarvis/tendoc/tokenStatus
返回示例:
{
"code": 200,
"msg": "访问令牌有效",
"data": {
"hasToken": true,
"token": "90aa0b70e7704c2abd2..."
}
}
使用流程
1. 在订单列表页面
- 找到有物流链接的订单
- 点击"同步物流"按钮
- 填写文件ID和工作表ID
2. 获取文件ID和工作表ID
从腾讯文档URL中获取:
https://docs.qq.com/sheet/Dxxxxxxxxxxxxx?tab=BB08J2
Dxxxxxxxxxxxxx是文件IDBB08J2是工作表ID
3. 开始同步
- 系统会自动检查后端是否有有效的访问令牌
- 如果有,直接开始同步
- 如果没有,会提示需要先完成授权
Token管理
自动刷新
- 系统会自动检查token是否即将过期(提前5分钟)
- 如果即将过期,会自动使用refresh_token刷新
- 刷新后的新token会自动保存
手动设置Token(可选)
如果通过其他方式获取了token,可以手动设置:
POST /jarvis/tendoc/setToken
{
"accessToken": "xxx",
"refreshToken": "xxx",
"expiresIn": 7200
}
清除Token
如需清除token,可以调用:
tencentDocTokenService.clearToken()
API接口说明
1. 获取授权URL
- 接口:
GET /jarvis/tendoc/authUrl - 说明: 用于首次授权,获取授权URL
2. OAuth回调
- 接口:
GET /jarvis/tendoc/oauth/callback?code=xxx&state=xxx - 说明: 腾讯文档授权回调,会自动保存token到后端
3. 检查Token状态
- 接口:
GET /jarvis/tendoc/tokenStatus - 说明: 检查当前token是否有效
4. 手动设置Token
- 接口:
POST /jarvis/tendoc/setToken - 说明: 手动设置token(可选)
5. 同步物流链接
- 接口:
POST /jarvis/tendoc/fillLogisticsByOrderNo - 说明: 根据单号填充物流链接,自动使用后端保存的token
- 参数:
{ "fileId": "文件ID", "sheetId": "工作表ID", "headerRow": 1, "orderNoColumn": null, "logisticsLinkColumn": null }
注意事项
-
回调地址配置:
- 必须在腾讯文档开放平台配置回调地址
- 回调地址必须是HTTPS(生产环境)
- 回调地址:
https://your-domain.com/jarvis/tendoc/oauth/callback
-
Token有效期:
- Access Token有效期:2小时
- Refresh Token有效期:30天
- 系统会自动刷新,无需手动操作
-
Redis存储:
- Token存储在Redis中,key格式:
tendoc:token:{appId} - Refresh Token key格式:
tendoc:refresh_token:{appId} - 过期时间key格式:
tendoc:token_expire:{appId}
- Token存储在Redis中,key格式:
-
同步逻辑:
- 系统会自动从上次处理的最大行数-100开始读取
- 避免重复处理历史数据
- 自动识别列位置(单号列和物流链接列)
故障排查
Token无效
如果提示"访问令牌无效":
- 检查是否完成首次授权
- 检查Redis中是否有token
- 尝试重新授权
授权失败
如果授权失败:
- 检查回调地址是否正确配置
- 检查回调地址是否在腾讯文档开放平台的白名单中
- 检查应用ID和应用密钥是否正确
同步失败
如果同步失败:
- 检查文件ID和工作表ID是否正确
- 检查表格是否有权限访问
- 查看后端日志获取详细错误信息