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 ip正则式
May 07 Python
布同 统计英文单词的个数的python代码
Mar 13 Python
python实现的一个火车票转让信息采集器
Jul 09 Python
python flask 多对多表查询功能
Jun 25 Python
python协程gevent案例 爬取斗鱼图片过程解析
Aug 27 Python
Python Numpy 控制台完全输出ndarray的实现
Feb 19 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
Python 如何查找特定类型文件
Aug 17 Python
基于Python的身份证验证识别和数据处理详解
Nov 14 Python
深度学习小工程练习之垃圾分类详解
Apr 14 Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 Python
详解OpenCV获取高动态范围(HDR)成像
Apr 29 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
php输出xml必须header的解决方法
2014/10/17 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
jquery操作select option 的代码小结
2011/06/21 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
AngularJS使用ng-options指令实现下拉框
2016/08/23 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
Python解析、提取url关键字的实例详解
2018/12/17 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
如何通过python检查文件是否被占用
2020/12/18 Python
C语言笔试题
2014/09/04 面试题
结婚邀请函范文
2014/01/14 职场文书
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
护士找工作求职信
2014/07/02 职场文书
会计人员岗位职责
2015/02/03 职场文书
父亲节寄语大全
2015/02/27 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
催款函范本大全
2015/06/24 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
用Python可视化新冠疫情数据
2022/01/18 Python
Python采集壁纸并实现炫轮播
2022/04/30 Python