一、点点API简介
点点博客API文档地址:http://doc.diandian.com/api/oauth/
根据该网站描述,该网站采用标准的OAuth 2.0的协议,既然是标准,应该很容易移植,现在采用这种协议的网站越来越多了,开发者最多的应该是新浪了,看到新浪有Python 的SDK果断下载下来,并进行移植。
二、SDK代码
oauth.py
# -*- coding: utf-8 -*-
#update by youyudehexie
#blog:http://blog.csdn.net/youyudehexie
try:
import json
except ImportError:
import simplejson as json
import time
import urllib
import urllib2
import logging
import webbrowser
def _obj_hook(pairs):
'''
convert json object to python object.
'''
o = JsonObject()
for k, v in pairs.iteritems():
o[str(k)] = v
return o
class APIError(StandardError):
'''
raise APIError if got failed json message.
'''
def __init__(self, error_code, error, request):
self.error_code = error_code
self.error = error
self.request = request
StandardError.__init__(self, error)
def __str__(self):
return 'APIError: %s: %s, request: %s' % (self.error_code, self.error, self.request)
class JsonObject(dict):
'''
general json object that can bind any fields but also act as a dict.
'''
def __getattr__(self, attr):
return self[attr]
def __setattr__(self, attr, value):
self[attr] = value
def _encode_params(**kw):
'''
Encode parameters.
'''
args = []
for k, v in kw.iteritems():
qv = v.encode('utf-8') if isinstance(v, unicode) else str(v)
args.append('%