Go版SDK
使用说明
授权模块不是独立的应用,是其他应用模块接入的前提,申请其他应用时,都需要一并申请账号授权的能力。 当申请了其他的能力并选择使用Go版SDK接入时,可参考以下的SDK接口说明。若还未下载SDK,请先下载SDK。
SDK获取
开发语言 | 资源下载 | 环境要求 |
---|---|---|
Go | SDK | 适用于GO语言开发环境 |
SDK相关接口调用
注意: 在调用SDK的文件相关接口前,需要先配置SDK的应用信息:
func NewConfig(appid, appkey string) (*Config, error);
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
appid | string | 应用唯一标识 |
appkey | string | 应用秘钥 |
调用方式:conFig, err := config.NewConfig(appId, appKey)
SDK接口说明如下:
1, 通过code换取网页授权access_token2, 刷新access_token (可选)3, 拉取用户信息4, 获取RPCTOken5, 检测RPCTOken的权限
1, 通过code换取网页授权access_token
通过code换取网页授权access_token
func GetToken(code string) (*model.Token, error);
尤其注意:由于应用appkey和获取到的access_token安全级别比较高,后续刷新access_token、通过access_token获取用户信息等步骤,必须从服务器调用接口。
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
code | string | 填写第一步获取的code参数 |
调用方式:result,err :=oauth2.GetToken(code)
2, 刷新access_token (如果需要)
func RefreshToken(refreshToken string) (*model.Token, error);
由于access_token的有效期较短,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为90天,当refresh_token失效之后,需要用户重新授权。使用refresh_token刷新access_token时,会返回一个新的refresh_token。
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
refresh_token | string | 填写通过code获取到的refresh_token参数 |
调用方式:result,err := oauth2.RefreshToken(refreshToken);
3, 拉取用户信息
func GetUserInfo(accessToken, openId string) (*model.UserInfo, error);
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
access_token | string | access_token |
openid | string | 用户标识openid |
调用方式:result,err := oauth2.GetUserInfo(oauth2AccessToken, oauth2OpenId)
4, 获取RPCTOken(RPC)
func GetRPCToken(accessToken, scope string) (string, error);
由于access_token的安全级别比较高,当需要客户端调用某些接口时,需要通过access_token换取一个rpc_token。客户端可以通过rpc_token直接调用接口。
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
access_token | string | access_token |
scope | string | 用户授权的作用域(share_file,upload_file,get_user_info) |
调用方式:result,err := oauth2.GetRPCToken(oauth2AccessToken, "get_user_info")
5, 检测RPCTOken的权限
func CheckRPCToken(rpcToken, scope string) (bool, error);
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
rpc_token | string | rpc_token |
scope | string | 用户授权的作用域 |
调用方式:result, err := oauth2.CheckRPCToken(rpcToken, "get_user_info")