import hmac
-# An OAuth implementation with various helpers...
+def write_token_file(filename, oauth_token, oauth_token_secret):
+ """
+ Write a token file to hold the oauth token and oauth token secret.
+ """
+ oauth_file = open(filename, 'w')
+ print >> oauth_file, oauth_token
+ print >> oauth_file, oauth_token_secret
+ oauth_file.close()
+
+def read_token_file(filename):
+ """
+ Read a token file and return the oauth token and oauth token secret.
+ """
+ f = open(filename)
+ return f.readline().strip(), f.readline().strip()
+
+
class OAuth(Auth):
+ """
+ An OAuth authenticator.
+ """
def __init__(self, token, token_secret, consumer_key, consumer_secret):
+ """
+ Create the authenticator. If you are in the initial stages of
+ the OAuth dance and don't yet have a token or token_secret,
+ pass empty strings for these params.
+ """
self.token = token
self.token_secret = token_secret
self.consumer_key = consumer_key
message = '&'.join(
urllib.quote(i, '') for i in [method.upper(), base_url, enc_params])
-
+
signature = hmac.new(
key, message, hashlib.sha1).digest().encode('base64')[:-1]
return enc_params + "&" + "oauth_signature=" + urllib.quote(signature, '')
if hasattr(query,"items"):
# mapping objects
query = query.items()
-
+
encoded_bits = []
for n, v in query:
# and do unicode here while we are at it...