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 多进程通信模块的简单实现
Feb 20 Python
Python程序设计入门(4)模块和包
Jun 16 Python
Python的Bottle框架的一些使用技巧介绍
Apr 08 Python
浅析Python中else语句块的使用技巧
Jun 16 Python
python 与GO中操作slice,list的方式实例代码
Mar 20 Python
Python列表解析配合if else的方法
Jun 23 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
Aug 27 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
Python实现投影法分割图像示例(一)
Jan 17 Python
python实现ip地址的包含关系判断
Feb 07 Python
Django 自定义404 500等错误页面的实现
Mar 08 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 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
中国的第一台收音机
2021/03/01 无线电
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
top.location.href 没有权限 解决方法
2008/08/05 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
js如何获取网页所有图片
2017/05/12 Javascript
详解js类型判断
2018/05/22 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
[47:43]完美世界DOTA2联赛PWL S3 Magama vs GXR 第二场 12.19
2020/12/24 DOTA
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
Html5 video标签视频的最佳实践
2020/02/26 HTML / CSS
学生实习推荐信范文
2013/11/26 职场文书
数控专业推荐信范文
2013/12/02 职场文书
文案策划求职信
2014/03/18 职场文书
论文诚信承诺书
2014/05/23 职场文书
感恩教师节主题班会
2015/08/12 职场文书
母亲节主题班会
2015/08/14 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
MySQL中的 inner join 和 left join的区别解析(小结果集驱动大结果集)
2023/05/08 MySQL