网站接入是易信针对第三方网站提供的社会化网络接入方案。接入易信让您的网站支持用易信帐号登录,让用户方便的分享网站内容、共享好友圈信息。
以下流程以测试用AppID(client_id): yxbbd0e8b3dce64e02bab42437becc4384 AppSecret:5a1db5830047b4a为例。
若开发者想使用自己的应用来体验易信OAuth2.0,可以在易信开放平台创建应用,注册应用后便可以获得AppID 和 AppSecret。
你的网站或者web应用需要调用用户的易信相关信息时获得用户授权时,需要将用户浏览器重定向到易信开放平台OAuth授权页面
相关附带参数请参与以下authorize接口说明
如果用户已经在易信开放平台授权页登录则直接至授权页面,否则用户需要先登录
如果用户已经登录,需要在授权页面决定是否同意授权
用户点击同意授权后,易信OAuth授权页面将自动重定向到你在易信开放平台提交应用时填写的回调redirect_uri。
如果未填写回调redirect_uri,默认为http://open.yixin.im/resource/oauth2_callback.html。
正确授权之后你的服务器或者你网站网页的浏览器端脚本会接收到易信授权服务器通过URL方式传给你的code参数。以上述测试AppID为例,易信授权服务器将会定向到类似
http://open.yixin.im/resource/oauth2_callback.html?code=Hb7QXO的地址。
如果用户拒绝授权或者授权失败,易信授权服务器将会定向到类似
http://open.yixin.im/resource/oauth2_callback.html?error=access_denied&error_description=User+denied+access。
你的服务器或程序解析上述第二步{redirect_uri}?code=****,之后将获取到code参数值
得到code之后,你需要尽快调用Access Token接口换取token,得到token之后你将可以使用易信相关API(具体参见易信开放平台API)。
code不能重复使用,一旦使用code获取access_token后code即刻失效。如果重新请求code,之前获取的access_token也将失效,必须使用新的code重新获取。
Get https://open.yixin.im/oauth/authorize
参数字段 | 必选 | 说明 |
client_id | yes | 申请应用时分配的AppId |
response_type | yes | 要求响应的类型,填code |
state | no | 随机的字符串 |
redirect_uri | no | 用户授权后,返回到第三方应用的地址。如果你在易信开放平台提交应用时填写了自己的回调地址,此处你传参时需要能够匹配你填写的地址中的域名。(完整的域名,yixin.im的连接,只能匹配yixin.im的连接。在开放平台填写多个回调地址时,此处的参数需要是你回调地址列表中的一个)。该参数留空则使用注册的回调地址 |
2. 获取Access Token
Post https://open.yixin.im/oauth/token
参数字段 | 必选 | 说明 |
client_id | yes | 申请应用时分配的AppId |
client_secret | yes | 申请应用时分配的AppSecret |
grant_type | yes | 授权类型,当前该参数值设置为字符串"authorization_code"即可 |
code | yes | Authorization Code |
redirect_uri | no | 请求用户授权时,如果填写了redirect_uri则获取token时候必须填写相同的redirect_uri。如果没有填写,则不传递此字段 |
{ "access_token": "1D45T7ofpx", "refresh_token": "723YU6x8qxp", "expires_in": 3600 }
参数字段 | 类型 | 说明 |
access_token | String | access_token |
refresh_token | String | refresh_token |
expires_in | int | access_token 的过期时间,单位秒 |
3. 通过Refresh Token获取Access Token
Post https://open.yixin.im/oauth/token
参数字段 | 必选 | 说明 |
client_id | yes | 申请应用时分配的AppId |
client_secret | yes | 申请应用时分配的AppSecret |
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 | 拒绝访问 |