ゼロと無限の間に

フリーでオープンソースなJavaScriptとかPHPとか。

ユーザ用ツール

サイト用ツール


python-box:appengine-oauth

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
python-box:appengine-oauth [2011/06/28 22:35]
dgbadmin @norikae_map 歩きのサンプル変更
python-box:appengine-oauth [2017/05/13 05:54]
dgbadmin [その4. TwitterにOAuthでログインしてTwitter APIを使うデモ]
行 63: 行 63:
 ''' '''
  
 +import json
 import logging import logging
-import wsgiref.handlers+import webapp2
 from appengine_twitter import AppEngineTwitter from appengine_twitter import AppEngineTwitter
 from basehandler import BaseHandler, h from basehandler import BaseHandler, h
-from django.utils import simplejson 
 from google.appengine.ext import db from google.appengine.ext import db
-from google.appengine.ext import webapp 
  
  
行 135: 行 134:
     # ここまで来ればOAuthを使ってAPIが使える。試しにユーザー名を取得     # ここまで来ればOAuthを使ってAPIが使える。試しにユーザー名を取得
     twitter.verify()     twitter.verify()
-    name = simplejson.loads(twitter.last_response.content)['screen_name']+    name = json.loads(twitter.last_response.content)['screen_name']
  
     self.demo_header()     self.demo_header()
行 176: 行 175:
 routing = [('/oauth/', InitHandler), routing = [('/oauth/', InitHandler),
            ('/oauth/callback', CallbackHandler)]            ('/oauth/callback', CallbackHandler)]
-application = webapp.WSGIApplication(routing, debug=False+application = webapp2.WSGIApplication(routing, debug=False)
-wsgiref.handlers.CGIHandler().run(application)+
 </code> </code>
  
行 196: 行 194:
  
 __author__ = 'dgbadmin@gmail.com' __author__ = 'dgbadmin@gmail.com'
-__version__ = '0.1.0'+__version__ = '0.1.1'
  
  
行 205: 行 203:
 from random import getrandbits from random import getrandbits
 from time import time from time import time
- +
  
 class AppEngineOAuth(object): class AppEngineOAuth(object):
行 220: 行 218:
     else:     else:
       self._token_type = 'access'       self._token_type = 'access'
- +
  
   def prepare_login(self, req_token_url):   def prepare_login(self, req_token_url):
行 243: 行 241:
     dic['params'] = urllib.urlencode(self.get_oauth_params(req_token_url,     dic['params'] = urllib.urlencode(self.get_oauth_params(req_token_url,
                                                            sig_params))                                                            sig_params))
-    +
     return dic     return dic
  
行 251: 行 249:
     self._token_secret = req_token_secret     self._token_secret = req_token_secret
     self._token_type = 'request'     self._token_type = 'request'
-    +
     params = urllib.urlencode(self.get_oauth_params(acs_token_url, {}))     params = urllib.urlencode(self.get_oauth_params(acs_token_url, {}))
     res = urlfetch.fetch(url=acs_token_url, payload=params, method='POST')     res = urlfetch.fetch(url=acs_token_url, payload=params, method='POST')
行 274: 行 272:
     if self._token_type != None:     if self._token_type != None:
       oauth_params['oauth_token'] = self._token       oauth_params['oauth_token'] = self._token
-      +
     # Add other params     # Add other params
     params.update(oauth_params)     params.update(oauth_params)
-    +
     # Sort and concat     # Sort and concat
     s = ''     s = ''
行 283: 行 281:
       s += self._quote(k) + '=' + self._quote(params[k]) + '&'       s += self._quote(k) + '=' + self._quote(params[k]) + '&'
     msg = method + '&' + self._quote(url) + '&' + self._quote(s[:-1])     msg = method + '&' + self._quote(url) + '&' + self._quote(s[:-1])
-    +
     # Maybe token_secret is empty     # Maybe token_secret is empty
     key = self._secret + '&' + self._token_secret     key = self._secret + '&' + self._token_secret
-    +
     digest = hmac.new(key, msg, sha1).digest()     digest = hmac.new(key, msg, sha1).digest()
     params['oauth_signature'] = digest.encode('base64')[:-1]     params['oauth_signature'] = digest.encode('base64')[:-1]
行 298: 行 296:
  
   def _qs2dict(self, s):   def _qs2dict(self, s):
-    dic = {}  +    dic = {}
     for param in s.split('&'):     for param in s.split('&'):
       (key, value) = param.split('=')       (key, value) = param.split('=')
python-box/appengine-oauth.txt · 最終更新: 2017/05/13 05:54 by dgbadmin