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中函数的多种格式和使用实例及小技巧
Apr 13 Python
Python实现字典依据value排序
Feb 24 Python
解决Python网页爬虫之中文乱码问题
May 11 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
详解Python 数据库的Connection、Cursor两大对象
Jun 25 Python
python中单下划线_的常见用法总结
Jul 10 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
Python读写文件基础知识点
Jun 10 Python
python async with和async for的使用
Jun 20 Python
django表单的Widgets使用详解
Jul 22 Python
基于python实现删除指定文件类型
Jul 21 Python
python 中的jieba分词库
Nov 23 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与SQL注入攻击[二]
2007/04/17 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
phpinfo的知识点总结
2019/10/10 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
搭建pypi私有仓库实现过程详解
2020/11/25 Python
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
后勤工作职责
2013/12/22 职场文书
生产部主管岗位职责
2014/01/06 职场文书
医学生求职信
2014/07/01 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
婚宴主持词
2015/06/30 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
创业计划书之便利店
2019/09/05 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
Pytorch 如何实现常用正则化
2021/05/27 Python