python 登陆微博 被删除 token_python接入微博第三方API之2接入用户登录和微博发布...

#coding=utf-8

importrequestsimportjsonimportMySQLdbfrom datetime importdatetimefrom flask importFlask, redirect, request

app= Flask(__name__)#全局变量token

token ={}defget_ticket():#App Key:13866668888 app key就是url中的 YOUR_CLIENT_ID

#YOUR_REGISTERED_REDIRECT_URI就是 http://test.chinasoft.com

client_id = 13866668888redirect_url= "http://test.chinasoft.com/a"url= 'https://api.weibo.com/oauth2/authorize?client_id={app_key}&response_type=code&redirect_uri={redirect_url}'.format(app_key = client_id, redirect_url =redirect_url)returnurldefget_token(code):#App Secret:6dc11f2039

redirect_url = "http://test.chinasoft.com/a"client_secret= "6dc11f2039"client_id= 13866668888url= "https://api.weibo.com/oauth2/access_token?client_id={client_id}&client_secret={client_secret}&grant_type=authorization_code&redirect_uri={redirect_url}&code={code}".format(client_id = client_id,client_secret = client_secret,redirect_url = redirect_url,code =code)

resp=requests.post(url)globaltoken

token=resp.json()returntokendefget_info(access_token, uid):

url= "https://api.weibo.com/2/users/show.json"resp= requests.get(url, params ={'access_token':access_token,'uid':uid

})returnresp.json()defget_conn():"""获取mysql的连接"""

try:

conn=MySQLdb.connect(

host="localhost",

port=3306,

user="root",

password="root",

db="user_grade",

)exceptMySQLdb.Error as e:print("Error %d:%s" % (e.args[0], e.args[1]))returnconndefweibo_share(access_token):

url= "https://api.weibo.com/2/statuses/share.json"resp=requests.post(url, {'access_token':access_token,'status':'现在是北京时间:{0} http://test.chinasoft.com'.format(datetime.now())

})returnresp.json()

@app.route('/a')defindex():

code= request.args.get('code', None)#根据code获取token

token =get_token(code)#获取用户信息

user_info = get_info(token['access_token'], token['uid'])

third_id= user_info['id']

nickname= user_info['screen_name']

headimg= user_info['profile_image_url']#获取数据库的连接,将用户信息存入到数据库中

#create table user(third_id int,nickname varchar(255),headimg varchar(1000));

conn =get_conn()

cur=conn.cursor()#注意 sql中的 values中的字段一定要加 单引号,否则会报错

sql = "insert into user(third_id,nickname,headimg) values('{third_id}','{nickname}','{headimg}')".format(third_id = third_id,nickname = nickname,headimg =headimg)

cur.execute(sql)

conn.autocommit(True)returnjson.dumps(user_info)

@app.route('/weibo')defweibo():

ticket=get_ticket()returnredirect(ticket)

@app.route('/share')defshare():

ticket=get_ticket()

rest= weibo_share(token['access_token'])returnjson.dumps(rest)if __name__ == '__main__':

app.run(port=80, debug=True)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值