微博授权登录获取个人信息

新建应用

https://open.weibo.com/apps

接url => 回调获取code => 利用code换取uid和access_token => 使用access_token获取用户信息

#新浪微博登录地址组合返回(第一步)
class weibo(APIView):

    def get(self, *args, **kwargs):

        #微博接口地址
        weibo_auth_url = "https://api.weibo.com/oauth2/authorize"
        #回调网址
        redirect_url = "http://127.0.0.1:8000/api/weibo"
        #应用id
        client_id = "137408567"
        #组合url
        auth_url = weibo_auth_url + "?client_id={client_id}&redirect_uri={re_url}".format(client_id=client_id,
                                                                                        re_url=redirect_url)
        print(auth_url)
        return HttpResponse('77')

新浪微博回调地址(第二步)

class SinaBackHandler(APIView):

def get(self,*args,**kwargs):

    #微博认证地址
    access_token_url = "https://api.weibo.com/oauth2/access_token"
    #参数 向新浪接口发送请求
    re_dict = requests.post(access_token_url,data={
        "client_id": '137408567',
        "client_secret": "ed1c848355395f01db94bc9fa11cd39a",
        "grant_type": "authorization_code",
        "code": '97992035a12c2ab4fddfbdfdc46e3a5c',
        "redirect_uri": "http://127.0.0.1:8000/api/weibo",
    })

    a_token=re_dict.json()['access_token']
    uid=re_dict.json()['uid']
    result = requests.get('https://api.weibo.com/2/users/show.json',
                          params={'access_token': a_token, 'uid':uid})

    result = json.loads(result.text)
    print(result['name'])


    return HttpResponse('99')

posted @ 2023-11-28 14:40  乐乐乐乐乐乐樂  阅读(106)  评论(0)    收藏  举报
jQuery火箭图标返回顶部代码