kloudless api的python库
kloudless的Python项目详细描述
kloudless api的python库
用于Kloudless API的python库。
在使用此sdk之前,您需要先注册并创建一个应用程序。
目录
要求
python 2.7或python 3.5+
安装
通过PIP安装:
pip install kloudless
从源安装:
git clone git://github.com/kloudless/kloudless-python
cd kloudless-python
python setup.py install
开始
大多数无kloudles的api端点需要连接到上游服务 先交代。首先导航到API Explorer并连接 一个帐户。
连接帐户后,从文本框中复制承载令牌 并使用它初始化帐户对象:
fromkloudlessimportAccountaccount=Account(token="YOUR_BEARER_TOKEN")
提出API请求
现在,您可以使用创建的帐户实例发出api请求。
如果连接到存储服务
# retrieve folder contentsroot_folder_contents=account.get('storage/folders/root/contents')forresourceinroot_folder_contents:print(resource.data)# download the first file in root_folderforresourceinroot_folder_contents:ifresource.data['type']=='file':filename=resource.data['name']response=resource.get('contents')withopen(filename,'wb')asf:f.write(response.content)break# upload a file to root_folderfile_name='FILE_NAME_TO_UPLOAD'headers={'X-Kloudless-Metadata':json.dumps({'parent_id':'root','name':file_name})}withopen(file_name,'rb')asf:file_resource=account.post('storage/files',data=f,headers=headers)
如果连接到日历服务
# retrieve primary calendarcalendar=account.get('cal/calendars/primary')print('Primary Calendar: {}'.format(calendar.data['name']))# iterate through events in first page with page_size equals 5events=calendar.get('events?page_size=5')foreinevents:data=e.dataprint('{}: {}~{}'.format(data['name'],data['start'],data['end']))# iterate thorough events in second pagenext_page_events=events.get_next_page()foreinnext_page_events:data=e.dataprint('{}: {}~{}'.format(data['name'],data['start'],data['end']))# create a new event on primary calendarevent=events.post(json={'start':'2019-01-01T12:30:00Z','end':'2019-01-01T13:30:00Z','name':'Event test'})
集成OAuth流
您可以使用Authenticator JS library
通过弹出窗口验证最终用户并存储令牌服务器端。
一旦令牌转移到您的
服务器。见kloudless.application.verify_token
。
另一种方法是使用OAuth授权代码授权流 将最终用户重定向到kloudless以将其帐户连接到您的应用程序。
OAuth集成演示服务器
examples/demo_server.py
提供3条腿OAuth的服务器端逻辑
使用kloudless python sdk中的helper方法的流。见
examples/README.md
获取有关运行演示服务器的说明。
python django示例代码
在views/
目录下的django视图中插入以下代码,然后
通过urls.py
调用它。
fromdjango.httpimportHttpResponseRedirect,HttpResponsefromdjango.confimportsettingsfromkloudlessimportget_authorization_url,get_token_from_codedefstart_authorization_flow(request):""" Redirect the user to start authorization flow. """url,state=get_authorization_url(app_id=settings.KLOUDLESS_APP_ID,redirect_uri=settings.KLOUDLESS_REDIRECT_URL,scope='any:normal.storage')request.session['authorization_state']=statereturnHttpResponseRedirect(url)defcallback(request):""" The endpoint for settings.KLOUDLESS_REDIRECT_URL. """params=request.GET.dict()token=get_token_from_code(app_id=settings.KLOUDLESS_APP_ID,api_key=settings.KLOUDLESS_API_KEY,orig_state=request.session['authorization_state'],orig_redirect_uri=settings.KLOUDLESS_REDIRECT_URL,**params)# store the tokenrequest.user.kloudless_token=tokenrequest.user.save()returnHttpResponse('Account connects successfully.')
文档
完整文档位于 Read the docs。