Mercurial > universal-identity-relyer
view oauth_experiment.py @ 12:63ea847bfa75
added more stuff
author | Atul Varma <avarma@mozilla.com> |
---|---|
date | Sat, 12 Jun 2010 22:37:20 -0700 |
parents | 42fe50c20cc8 |
children |
line wrap: on
line source
import os import json import oauth2 as oauth import wsgiref.util import twitter_client import file_storage from static_file_serving import StaticFileApp class MyTwitterApp(object): def __init__(self, default, access_tokens): self.default = default self.twitter = None self.access_tokens = access_tokens def onsuccess(self, environ, start_response): access_token = environ['oauth.access_token'] tokid = access_token['oauth_token'] if tokid not in self.access_tokens: self.access_tokens[tokid] = access_token start_response('200 OK', [('Content-Type', 'text/html')]) js = 'window.opener.onLogin(window, "%s");' % tokid return ['<script>%s</script>' % js] def __call__(self, environ, start_response): path = environ['PATH_INFO'] if path.startswith('/twitter/') and self.twitter is not None: wsgiref.util.shift_path_info(environ) return self.twitter(environ, start_response) return self.default(environ, start_response) def ensure_dirs(*paths): for path in paths: if not os.path.exists(path): os.mkdir(path) mydir = os.getcwd() staticfilesdir = os.path.join(mydir, 'static-files') storagedir = os.path.join(mydir, 'storage') reqdir = os.path.join(storagedir, 'request-tokens') accdir = os.path.join(storagedir, 'access-tokens') ensure_dirs(storagedir, reqdir, accdir) static_files = StaticFileApp(staticfilesdir) app = MyTwitterApp( default=static_files, access_tokens=file_storage.FileStorage(accdir) ) config = json.loads(open("config.json").read()) consumer = oauth.Consumer(config['consumer_key'], config['consumer_secret']) twitter = twitter_client.TwitterOauthClientApp( consumer=consumer, oauth=oauth, request_tokens=file_storage.FileStorage(reqdir), onsuccess=app.onsuccess ) app.twitter = twitter