Posted in Python onApril 11, 2014
开发环境:python版本2.X
#!/usr/bin/env python # -*- coding:utf-8 -*- # 适合python版本: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 an 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()
python使用xauth方式登录饭否网然后发消息
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@