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打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
python 读写txt文件 json文件的实现方法
Oct 22 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
Python数据结构与算法之图结构(Graph)实例分析
Sep 05 Python
CentOS7.3编译安装Python3.6.2的方法
Jan 22 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
python 字典的打印实现
Sep 26 Python
Python中求对数方法总结
Mar 10 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
Python利用socket模块开发简单的端口扫描工具的实现
Jan 27 Python
Pytorch 中的optimizer使用说明
Mar 03 Python
Python常用配置文件ini、json、yaml读写总结
Jul 09 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来自动调用不同服务器上的flash
2006/10/09 PHP
一个用于网络的工具函数库
2006/10/09 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
php简单获取复选框值的方法
2016/05/11 PHP
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
为jQuery增加join方法的实现代码
2010/11/28 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
javascript折半查找详解
2015/01/26 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
vue中轮训器的使用
2019/01/27 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
python网络爬虫采集联想词示例
2014/02/11 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
Python利用字典破解WIFI密码的方法
2019/02/27 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
python3中for循环踩过的坑记录
2020/12/14 Python
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
行政专员岗位职责
2014/01/02 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
校园安全广播稿范文
2014/09/25 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
js不常见操作运算符总结
2021/11/20 Javascript
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python