Development environment: Python version 2. X
Copy Code code as follows:
#!/usr/bin/env python
#-*-Coding:utf-8-*-
# for Python version: 2.X
Import sys, Urllib, re
Import Oauth.oauth as OAuth
From URLLIB2 import Request, Urlopen
Status = ' Hello world! ' # Send Message
Consumer_key = ' ... ' # API Key
Consumer_secret = ' ... ' # API secret
Access_token_url = ' Http://fanfou.com/oauth/access_token '
Verify_url = ' Http://api.fanfou.com/account/verify_credentials.xml '
Post_url = ' Http://api.fanfou.com/statuses/update.xml '
def request_to_header (Request, realm= '):
"" "Serialize as a header for a httpauth request." "
Auth_header = ' OAuth realm= '%s '% realm
# ADD the OAuth parameters.
If Request.parameters:
For K, v. in Request.parameters.iteritems ():
If K.startswith (' oauth_ ') or K.startswith (' X_auth_ '):
Auth_header + = ',%s= '%s '% (k, oauth.escape (str (v)))
return {' Authorization ': Auth_header}
# Get username and password from command line
Username = sys.argv[1]
passwd = sys.argv[2]
Consumer = OAuth. Oauthconsumer (Consumer_key, Consumer_secret)
params = {}
params["x_auth_username"] = Username
params["X_auth_password"] = passwd
params["X_auth_mode"] = ' Client_auth '
Request = OAuth. Oauthrequest.from_consumer_and_token (Consumer,
Http_url=access_token_url,
Parameters=params)
Signature_method = OAuth. OAUTHSIGNATUREMETHOD_HMAC_SHA1 ()
Request.sign_request (Signature_method, Consumer, None)
Headers=request_to_header (Request)
RESP = Urlopen (Request (Access_token_url, headers=headers))
token = Resp.read ()
Print Token # Access_token got
m = Re.match (R ' oauth_token=) (? p<key>[^&]+) &oauth_token_secret= (? p<secret>[^&]+) ', token
If M:
Oauth_token = OAuth. Oauthtoken (M.group (' key '), M.group (' secret '))
params[' status ']=status
Request = OAuth. Oauthrequest.from_consumer_and_token (Consumer,
Http_method= ' POST ',
Token=oauth_token,
Http_url=post_url,
Parameters=params)
Request.sign_request (Signature_method, Consumer, Oauth_token)
Headers=request_to_header (Request)
RESP = Urlopen (Request (Url=post_url, Data=urllib.urlencode ({' Status ': status}), Headers=headers)
Print Resp.read ()