分享

简单的skydrive sdk for python

 旭龙 2012-08-12

我大微软竟然没有提供skydrive sdk的python版本,对于skydrive这么好的东西我可是舍不得,最近在捣鼓python,就顺手写了个

复制代码
import urllib,json

AuthorizeServer='https://login./oauth20_authorize.srf'
OauthServer='https://login./oauth20_token.srf'
ClientId=''#CLIENT_ID
ClientSecret=''#CLIENT_SECRET
Scope='wl.offline_access wl.skydrive_update'
RedirectUri='http://live./callback'
ApiServer='https://apis./v5.0/'
Token=None

def SaveRefreshToken(refresh):
    return ''
def ReadRefreshToken(): return '' def Get(url): return urllib.urlopen(url).read() def Post(url,data): return urllib.urlopen(url,urllib.urlencode(data)).read() def GetTokenByCode(code): data={} data['client_id']=ClientId data['redirect_uri']=RedirectUri data['client_secret']=ClientSecret data['code']=code data['grant_type']='authorization_code' data=Post(OauthServer,data) var=json.loads(data) if var.get('access_token') and var.get('refresh_token'): SaveRefreshToken(var['refresh_token']) global Token Token=var['access_token'] return var['access_token'] return False def GetTokenByRefresh(refresh): data={} data['client_id']=ClientId data['client_secret']=ClientSecret data['redirect_uri']=RedirectUri data['refresh_token']=refresh data['grant_type']='refresh_token' data=Post(OauthServer,data) var=json.loads(data) if var.get('access_token') and var.get('refresh_token'): SaveRefreshToken(var['refresh_token']) global Token Token=var['access_token'] return var['access_token'] return False def GetToken(): global Token GetTokenByRefresh(ReadRefreshToken()) if Token: return Token return False def Request(path): global Token if GetToken(): url=ApiServer url+=path url+='?access_token='+str(Token) return json.loads(Get(url)) return False def AuthorizeUri(): url=AuthorizeServer+'?' url+='client_id='+ClientId+'&' url+='scope='+urllib.quote(Scope)+'&' url+='response_type=code&' url+='redirect_uri='+urllib.quote(RedirectUri) return url
复制代码

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约