Skip to main content
Version: latest

网页授权

该授权方式于第三方应用获取用户授权,进而读写用户的问卷数据,团队开发者无需关注。

第一步:用户同意授权,获取 code#

构造网页授权链接#

https://open.wj.qq.com/connect/oauth2/authorize?appid={APPID}&redirect_uri={REDIRECT_URI}&response_type=code&scope=snsapi_user&state={STATE}#wj_redirect

参数说明#

参数名类型是否必须描述
appidstring开放平台颁发的应用ID
redirect_uristring授权后重定向的回调链接地址,请使用urlencode对链接进行处理
response_typestring返回类型,此时固定为:code
scopestring应用授权作用域,获取用户授权填写:snsapi_user
statestring重定向后会带上state参数,应用可以填写a-zA-Z0-9的参数值,长度不可超过128个字节
#wj_redirect固定

备注:用户点击"确定"后,页面将跳转至 redirect_uri?code={CODE}&state={STATE}


第二步: 通过 code 换取网页授权 access_token#

注意!

  1. 这里换取的 access_token 与用户资源相关,安全等级非常高,必须只保存在服务器,不允许传给客户端。
  2. 后续通过 access_token 获取用户数据等步骤,也必须从服务器发起。
  3. access_token 有效时间为3天,过期后须重新发起授权。

接口地址#

GET https://open.wj.qq.com/api/oauth2/access_token?appid={APPID}&secret={SECRET}&code={CODE}&grant_type=authorization_code

参数说明#

参数名类型是否必须描述
appidstring开放平台颁发的应用ID
secretstring开放平台颁发的应用秘钥
codestring填写第一步返回的 code,该 code 成功换取一次 access_token 后失效
grant_typestring固定为 authorization_code

返回说明#

参数名类型描述
access_tokenstring授权码
refresh_tokenstring用于刷新授权码,有效期为30天
expires_ininteger有效时间,默认为3天
openidstring用户授权给当前应用的唯一标识,openid 可获得用户列表等数据
{    "code": "OK",    "error": {        "type": ""    },    "data": {        "access_token":"ACCESS_TOKEN",        "refresh_token":"REFRESH_TOKEN",        "expires_in": 259200,        "openid":"OPENID"    },    "request_id": "6cda53f4-d0fa-41a9-95a0-77ea32c97f1e"}

第三步:使用 access_token 请求读写用户数据#

在请求接口加上 ?appid={APPID}&access_token={ACCESS_TOKEN}
例如获取用户的问卷详情:

GET https://open.wj.qq.com/api/surveys/{survey_id}?appid={APPID}&access_token={ACCESS_TOKEN}

个别接口需加上 ?openid={OPENID} 例如获取用户的问卷列表:

GET https://open.wj.qq.com/api/surveys?appid={APPID}&access_token={ACCESS_TOKEN}&openid={OPENID}

其他:刷新 access_token(如果需要)#

由于 access_token 有效期较短,当 access_token 超时后,可以使用 refresh_token 进行刷新,refresh_token 有效期为30天,当 refresh_token 失效之后,需要用户重新授权。

接口地址#

GET https://open.wj.qq.com/api/oauth2/refresh_token?appid={APPID}&refresh_token={REFRESH_TOKEN}&grant_type=refresh_token

参数说明#

参数名类型是否必须描述
appidstring开放平台颁发的应用ID
refresh_tokenstring填写第二步返回的 refresh_token
grant_typestring固定为 refresh_token

返回说明#

参数名类型描述
access_tokenstring授权码
expires_ininteger有效时间,默认为3天
{    "code": "OK",    "error": {        "type": ""    },    "data": {        "access_token":"ACCESS_TOKEN",        "expires_in": 259200    },    "request_id": "6cda53f4-d0fa-41a9-95a0-77ea32c97f1e"}

其他:获取授权用户信息#

接口地址#

GET https://open.wj.qq.com/api/oauth2/user?appid={APPID}&access_token={ACCESS_TOKEN}&openid={OPENID}

参数说明#

参数名类型是否必须描述
appidstring开放平台颁发的应用ID
access_tokenstring填写第二步返回的 access_token
openidstring用户授权给当前应用的唯一标识

返回说明#

参数名类型描述
openidstring用户授权给当前应用的唯一标识
nicknamestring用户在腾讯问卷系统的昵称
avatarstring用户在腾讯问卷系统的头像