源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python使用xauth方式登录饭否网然后发消息

  • 时间:2022-02-15 00:16 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python使用xauth方式登录饭否网然后发消息
开发环境:python版本2.X
[u]复制代码[/u] 代码如下:
#!/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()
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部