Token管理
此章节主要说明获取Token以及管理Token授权信息内容管理;
其主要流程如下:
一、获取AccessToken及RefreshToken
业务账户管理人通过授权链接同意授权后,开发者应用回调地址会收到本次授权生成的auth_code,可通过【获取Access Token】接口获取到本次授权账号对应的AccessToken和RefreshToken。
获取到AccessToken之后,即可使用AccessToken调用相关功能接口对授权账户进行相关操作。
1.1 获取Access Token
开发者申请广告主授权,通过回调地址回调到Auth_Code,用于调用接口获取Access Token
- 此接口会同时返回Access Token和Refresh Token,建议开发者将其保存到本地数据库中,方便调用接口;
- Access Token 是调用各个模块接口凭证,其有效期是24小时,在过期之际可以通过刷新Access Token接口获取新的Access token(24小时有效期),然后再调用接口;
1.2 刷新 Access Token
由于Access token 24小时过期,所以需要使用Refresh Token 刷新Access token以保证每次调用接口使用的都是最新有效的Access token;
- 建议开发者通过定时任务的方式进行持续刷新,以免调用接口使用无效Access Token;
- Refresh Token 30天有效期,刷新会产生新的Access token和新的 Refresh Token, 建议做好保存和调用;
1.2 AccessToken与授权账号关系
如图所示,虚线标识为已完成授权的业务线账户(代理商账户1、代理商账户2),此时获得的Token可以同时操作广告主1、广告主2、广告主3,即同一个登录账号User下的已授权业务账户共用同一个Token
- AccessToken对应的授权登录账户User可通过【获取授权User信息】接口查询确认。
二、维持AccessToken及RefreshToken有效期
授权获取的AccessToken(1天)及RefreshToken(30天)都有有效期限制,失效后无法继续使用
2.1 通过RefreshToken刷新效期
Refresh_Token在有效期内,可以通过接口【刷新Refresh Token】刷新Access_Token,刷新会同时获得新的AccessToken及RefreshToken并更新效期时间(不会影响已有授权关系),同时原Token也会失效,再次刷新需要使用本次刷新获取的新的RefreshToken。
Refresh_Token、Access_Token、auth_code失效后,只能通过重新申请授权获取,建议在调用Token相关接口时避免并发请求。
2.2 Token相关接口常见报错
错误码 | message | 排查建议 |
40102 | access_token已过期 | 传入access_token已失效,请重新申请授权获取 |
40103 | refresh_token已过期 | 传入refresh_token已失效,失效原因:1. refresh_token已被使用;2. Token对应账号重新授权并生成了新的Token 3. refresh_token已过有效期 |
40104 | The access_token is empty. | 传入access_token无效,请重新获取正确access_token传入 |
40107 | refresh_token无效,请传入最新的refresh_token | 传入refresh_token已失效,失效原因一般是由于refresh_token已被使用,或授权账号重新授权并生成了新的Token |
40113 | App不存在或者状态异常 | access_token 对应的开发者应用状态异常,请登陆开发者后台查看确认应用是否存在以及状态是否上线 |
40115 | 授权码无效 | auth_code 已失效,失效原因:1. 已使用 ;2. 已过10分钟有效期 ;3. 同账号重新授权生成 |
40115 | auth_code已经被使用,请重新授权 | auth_code 已失效,失效原因:1. 已使用 ;2. 已过10分钟有效期 ;3. 同账号重新授权生成 |
三、 获取已授权账户
通过Access token可以确认目前授权了哪些(角色)账号,然后通过“角色”判断,是否需要获取对应角色下管理的广告主账号,进而传参数调用广告主接口;
- account_role 区分了普通广告主、纵横组织账户、一级代理商、二级代理商等角色。对于管家/代理商的角色,需要通过“获取工作台下账户列表”/“获取代理商账户列表”;
- is_valid表示目前授权账号是否仍旧有效,false表示对应的user在客户中心/一站式平台代理商平台变更了权限,需要到对应平台进行调整过来;
四、 获取授权User信息
此接口通过Access Token 用于获取授权的User信息。当需要管理多个授权信息的时候,可以通过此接口进一步区分Access Token 的授权user,以免重复授权;

