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保存字符串到文件的方法
Jul 01 Python
python魔法方法-自定义序列详解
Jul 21 Python
详解python开发环境搭建
Dec 16 Python
Python队列的定义与使用方法示例
Jun 24 Python
快速解决pandas.read_csv()乱码的问题
Jun 15 Python
python logging重复记录日志问题的解决方法
Jul 12 Python
python实现写数字文件名的递增保存文件方法
Oct 25 Python
在python中将字符串转为json对象并取值的方法
Dec 31 Python
详解python做UI界面的方法
Feb 27 Python
Python交互环境下打印和输入函数的实例内容
Feb 16 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
Feb 24 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使用者状态管理功能的应用
2006/10/09 PHP
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
PHP动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
Javascript动画效果(3)
2016/10/11 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
Python实现端口复用实例代码
2014/07/03 Python
利用Python如何生成随机密码
2016/04/20 Python
简单谈谈python中的多进程
2016/11/06 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
用python绘制樱花树
2020/10/09 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
Weblogc domain问题
2014/01/27 面试题
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
教育专业自荐书范文
2013/12/17 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
2014年药房工作总结
2014/11/22 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
数据库连接池
2021/04/06 MySQL