请参考IOS SDK使用指南和Android SDK 使用指南,完成SDK环境的配置。
提示:如果用户移动设备未安装易信客户端或易信客户端版本太低,易信OAuth SDK将会告诉你用户设备当前环境是否已安装并支持易信OAuth认证授权。如果支持,你只需要在易信客户端回传你获取到的code之后换取token即可;不支持的话,你可以尝试使用webview进行授权认证流程,参考web网页OAuth流程
以IOS为例,在将易信开放平台提交应用分配得到的AppID注册为URL Schemes,然后调用SDK的发起OAuth请求的API,切换到易信界面。
如果用户还未登录易信,需要先登录
如果用户已经登录,会在授权界面看到你的应用介绍和需要获取的权限,由用户决定是否同意授权。用户同意或取消授权,易信客户端都将切换回你的APP应用界面。
易信客户端在授权流程处理完毕后会切换回你的应用界面。你的应用通过SDK的onReceiveResponse将会获取到授权结果,解析之后能够拿到code,通过code换取token之后可以调用易信相关API
code不能重复使用,一旦使用code获取access_token后code即刻失效。如果重新请求code,之前获取的access_token也将失效,必须使用新的code重新获取。
Post https://open.yixin.im/oauth/token
参数字段 | 必选 | 说明 |
client_id | yes | 申请应用时分配的AppId |
client_secret | yes | 申请应用时分配的Secret |
grant_type | yes | 授权类型,当前该参数值设置为字符串"authorization_code"即可 |
code | yes | Authorization Code |
{ “access_token”: “1D45T7ofpx”, “refresh_token”: “723YU6x8qxp”, “expires_in”: 3600 }
参数字段 | 类型 | 说明 |
access_token | String | access_token |
refresh_token | String | refresh_token |
expires_in | int | access_token 的过期时间,单位秒 |
Post https://open.yixin.im/oauth/token
参数字段 | 必选 | 说明 |
client_id | yes | 申请应用时分配的AppId |
client_secret | yes | 申请应用时分配的Secret |
grant_type | yes | 授权类型,当前该参数值设置为字符串"refresh_token"即可 |
refresh_token | yes | refresh token |
{ “access_token”: “1D45T7ofpx”, “refresh_token”: “723YU6x8qxp”, “expires_in”: 3600 }
参数字段 | 类型 | 说明 |
access_token | String | access_token |
refresh_token | String | refresh_token |
expires_in | int | access_token 的过期时间,单位秒 |
异常返回:{"error":"invalid_token","error_description":"Invalid access token: 9a4471bb-2c82-46c8-8dd7-4aaddaca6d37"}
异常 | 描述 |
invalid_request | 参数不正确 |
invalid_client | 客户端未找到 |
invalid_grant | 使用code,或者refresh token换取token时,数据不正确 |
unsupported_grant_type | 不支持的授权类型 |
invalid_scope | 不支持的授权域 |
invalid_token | 使用accessToken访问是,token不正确 |
redirect_uri_mismatch | 获得code或者使用code换token时,重定向地址不匹配 |
unsupported_response_type | 不支持的response_type |
access_denied | 拒绝访问 |