tornado登陆豆瓣代码实例详解编程语言

分享一段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)

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/8424.html

(0)
上一篇 2021年7月18日 19:34
下一篇 2021年7月18日 19:34

相关推荐

发表回复

登录后才能评论