手机
当前位置:查字典教程网 >脚本专栏 >python >python使用xauth方式登录饭否网然后发消息
python使用xauth方式登录饭否网然后发消息
摘要:开发环境:python版本2.X复制代码代码如下:#!/usr/bin/envpython#-*-coding:utf-8-*-#适合pyt...

开发环境: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使用xauth方式登录饭否网然后发消息】相关文章:

python中定义结构体的方法

python多线程抓取天涯帖子内容示例

python登录QQ邮箱发信的实现代码

python爬取网站数据保存使用的方法

Python使用Socket(Https)Post登录百度的实现代码

python 字符串格式化代码

使用python调用浏览器并打开一个网址的例子

python使用rsa加密算法模块模拟新浪微博登录

python 参数列表中的self 显式不等于冗余

Python yield使用方法示例

精品推荐
分类导航