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


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 相关文章推荐
Python help()函数用法详解
Mar 11 Python
Python的Scrapy爬虫框架简单学习笔记
Jan 20 Python
python爬取NUS-WIDE数据库图片
Oct 05 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
python之PyMongo使用总结
May 26 Python
python 用正则表达式筛选文本信息的实例
Jun 05 Python
tensorflow更改变量的值实例
Jul 30 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
Python和Sublime整合过程图示
Dec 25 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
python rolling regression. 使用 Python 实现滚动回归操作
Jun 08 Python
Python Numpy库的超详细教程
Apr 06 Python
python判断、获取一张图片主色调的2个实例
Apr 10 #Python
Python使用新浪微博API发送微博的例子
Apr 10 #Python
一个检测OpenSSL心脏出血漏洞的Python脚本分享
Apr 10 #Python
Python删除指定目录下过期文件的2个脚本分享
Apr 10 #Python
python实现随机密码字典生成器示例
Apr 09 #Python
Python下的Mysql模块MySQLdb安装详解
Apr 09 #Python
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 #Python
You might like
php实现的在线人员函数库
2008/04/09 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
php获取操作系统语言代码
2013/11/04 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
vue、react等单页面项目应该这样子部署到服务器
2018/01/03 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
使用Python生成XML的方法实例
2017/03/21 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
Python count函数使用方法实例解析
2020/03/23 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
python3实现简单飞机大战
2020/11/29 Python
python基于openpyxl生成excel文件
2020/12/23 Python
分享一个页面平滑滚动小技巧(推荐)
2019/10/23 HTML / CSS
会计个人实习计划书
2014/08/15 职场文书
2016年安全月活动总结
2016/04/06 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL