tornado登陆豆瓣代码实例

tornado登陆豆瓣代码实例[Python框架]

分享一段tornado登陆豆瓣的代码,只简单实现了登陆,并没有实现异步登陆。需要的网友可以自己将代码完善一下。

直接上代码:

#coding=utf8
import settings
import urllib
from tornado import httpclient
import json
 
class douban:
    authurl = "https://www.douban.com/service/auth2/"
    user_info_url = "https://api.douban.com/v2/user/~me"
 
    def get_authorization_code(self):
        params = {
            "client_id":settings.oauth2["douban"]["key"],
            "redirect_uri":settings.oauth2["redirect_url"],
            "response_type":"code",
            "scope":"douban_basic_common",
        }
        return self.authurl+"auth?"+urllib.urlencode(params)
 
    def get_access_token(self,code):
        params = {
            "client_id":settings.oauth2["douban"]["key"],
            "client_secret":settings.oauth2["douban"]["sercet"],
            "redirect_uri":settings.oauth2["redirect_url"],
            "grant_type":"authorization_code",
            "code":code,
        }
        url = self.authurl+"token"
        http_client = httpclient.HTTPClient()
        req = httpclient.HTTPRequest(url,method="POST",body=urllib.urlencode(params))
        response = http_client.fetch(req)
        return json.loads(response.body)
             
    def get_user_info(self,access_token):
        url = "https://api.douban.com/v2/user/~me"
        http_client = httpclient.HTTPClient()
        req = httpclient.HTTPRequest(url,headers={"Authorization":"Bearer "+access_token})
        response = http_client.fetch(req)
        return json.loads(response.body)


来源:PY学习网:原文地址:https://www.py.cn/article.html