访问微博API都需要access_token再加uid或者screen_name,所以第一步就是要授权,获取到access_token。
第一步:创建网站应用,创建之后,有个appkey和appsecret;
第二步:获取二维码,响应的是一串imgUrl,将其放在img标签的的src属性里面即可显示出二维码;
//获取二维码的url
//请求参数
let paramsData={
client_id: appkey,
redirect_uri: '回调地址',
scope: '',
response_type: 'code',
state: date.getTime() //时间戳
}
//get方式,需要将参数拼接到url后面
//响应的数据形式
https://api.weibo.com/oauth2/qrcode_authorize/show?vcode=xxxxxx&qr_url=xxxxxxx
第三步:二维码有个状态值,1代表用户还未扫描,2代表用户已经扫描,但是还未确认登录,3代表已经授权登录,当状态为3的时候还会返回过来一串code,access_token就是根据code生成的,所以要将其保存下来。同时,设置一个定时函数,不断的请求二维码状态,以此来判断用户的登录情况;
//请求二维码的状态
//参数
let paramsData={
vcode:xxxx
}
//这个vcode就是上一个请求回传过来的,可以将其截取出来
//响应数据
{
status:"3"
url:"回调地址state=xxxxx&code=xxxxxx"
}
第四步:获取到code之后,又发请求给服务器,获取access_token。
//从前一个请求会送过来的数据截取到code之后
//再发一个请求给服务器
//参数形式
let data = {
client_id: 'xxxxx',
client_secret: 'xxxxx',
grant_type: 'authorization_code',
code: code,
redirect_uri: 'xxxxx',
}
注意:这里是post方式,但是参数要拼接在url后面,传一个空的data过去