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函数学习笔记
Oct 07 Python
python模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
python发送邮件功能实现代码
Jul 15 Python
python实现决策树、随机森林的简单原理
Mar 26 Python
使用Flask集成bootstrap的方法
Jul 24 Python
在Python 不同级目录之间模块的调用方法
Jan 19 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
详解Django-channels 实现WebSocket实例
Aug 22 Python
python基于celery实现异步任务周期任务定时任务
Dec 30 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
关于tensorflow softmax函数用法解析
Jun 30 Python
python实现经典排序算法的示例代码
Feb 07 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
初识Laravel
2014/10/30 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
laravel model 两表联查示例
2019/10/24 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
js转义字符介绍
2013/11/05 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
2016/05/26 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
Python对文件操作知识汇总
2016/05/15 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
python学生管理系统
2019/01/30 Python
python中下标和切片的使用方法解析
2019/08/27 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
任课老师推荐信范文
2013/11/24 职场文书
简历里的自我评价
2014/01/31 职场文书
关于元旦的广播稿
2014/02/16 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
开工仪式主持词
2014/03/20 职场文书
高三霸气励志标语
2014/06/24 职场文书
六年级小学生评语
2014/12/26 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
swagger如何返回map字段注释
2021/07/03 Java/Android