web调用weibopy的oauth认证

在GAE下,用webapp框架,希望通过weibopy这个weibo的python SDK进行oauth认证。

贴上代码

#coding=utf-8
import os
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp import template
from weibopy.auth import OAuthHandler
from weibopy.api import API
from gaesessions import get_current_session

CONSUMER_KEY
= "key"
CONSUMER_SECRET
= "secret"

class MainPage(webapp.RequestHandler):
def get(self):
session
= get_current_session()
if not self.request.get('oauth_token'):
auth
= OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET, callback="http://localhost:8080")
auth_url
= auth.get_authorization_url()
# 需要保存request_token的信息,留做取access_token用
session["oauth_token"] = auth.request_token.key
session[
"oauth_token_secret"] = auth.request_token.secret
self.redirect(auth_url)
else:
oauth_verifier
= self.request.get("oauth_verifier")
auth
= OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
# 从session中取出request_token的信息
auth.set_request_token(session["oauth_token"], session["oauth_token_secret"])
auth.get_access_token(oauth_verifier)
api
= API(auth)
path
= os.path.join(os.path.dirname(__file__), "templates/index.html")
self.response.out.write(template.render(path,
{
"name": api.verify_credentials.screen_name}))

application
= webapp.WSGIApplication([
(
'/', MainPage),
], debug
=True)

def main():
run_wsgi_app(application)

if __name__ == "__main__":
main()

关键在于下列几点:

  1. 需要用到session,gae不带session功能,需要用到外部库<a href="https://github.com/dound/gae-sessions/wiki/">gaesessions</a>
  2. 在跳转去认证页面前,要保存request_token的信息到session里
  3. 在获取access_token的信息时,需要request_token和oauth_verifier

转载于:https://www.cnblogs.com/kebo/archive/2011/07/27/2117974.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值