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 相关文章推荐
在Docker上部署Python的Flask框架的教程
Apr 08 Python
自动化Nginx服务器的反向代理的配置方法
Jun 28 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
用于业余项目的8个优秀Python库
Sep 21 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
简单了解python字符串前面加r,u的含义
Dec 26 Python
python实现删除列表中某个元素的3种方法
Jan 15 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
django实现模板中的字符串文字和自动转义
Mar 31 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 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 变量定义和变量替换的方法
2009/07/30 PHP
PHP读取XML值的代码(推荐)
2011/01/01 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
2018/06/04 PHP
Javascript this 的一些学习总结
2012/08/02 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
2013/08/23 Javascript
红米手机抢购的js代码
2014/03/10 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
javascript中闭包概念与用法深入理解
2016/12/15 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
2018/04/20 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
vue权限管理系统的实现代码
2019/01/17 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
Python常用正则表达式符号浅析
2014/08/13 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
pandas对指定列进行填充的方法
2018/04/11 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
python性能测试工具locust的使用
2020/12/28 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
CLR与IL分别是什么含义
2016/08/23 面试题
艺术设计专业个人求职信
2013/09/21 职场文书
《雨霖铃》听课反思
2014/02/13 职场文书
鼋头渚导游词
2015/02/05 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
走进毛泽东观后感
2015/06/04 职场文书
工伤调解协议书
2016/03/21 职场文书