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中的闭包详细介绍和实例
Nov 21 Python
Python实现批量下载文件
May 17 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
Python之Web框架Django项目搭建全过程
May 02 Python
Python 做曲线拟合和求积分的方法
Dec 29 Python
python语言元素知识点详解
May 15 Python
Python下opencv图像阈值处理的使用笔记
Aug 04 Python
.dcm格式文件软件读取及python处理详解
Jan 16 Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 Python
python应用Axes3D绘图(批量梯度下降算法)
Mar 25 Python
Pytorch十九种损失函数的使用详解
Apr 29 Python
Python 如何利用ffmpeg 处理视频素材
Nov 27 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
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
Python os模块介绍
2014/11/30 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
Python不同目录间进行模块调用的实现方法
2019/01/29 Python
python实现银行管理系统
2019/10/25 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
pytorch forward两个参数实例
2020/01/17 Python
Python如何输出整数
2020/06/07 Python
Python: glob匹配文件的操作
2020/12/11 Python
公司道歉信范文
2014/01/09 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
小学大队委竞选口号
2015/12/25 职场文书
go xorm框架的使用
2021/05/22 Golang
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技