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并连接 一个帐户。

Get the Bearer Token

连接帐户后,从文本框中复制承载令牌 并使用它初始化帐户对象:

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何通过循环Id数组设置按钮Id,并使用循环设置按钮文本?   java在一个JTextField中添加字符串和int值   java如何解析2006年2月20日这样的日期?   java Android我试图从SharePreference获取数据   java如何在springboot中将ObjectId转换成字符串   java如何在ListActivity中将按钮返回工具栏   web服务如何使用免费API或web服务从java程序向手机发送短信   java Udp如何从服务器获取整数?   使用DAM资产进行java AEM JUnit测试   数组Java程序循环不会执行并提示用户?   安卓上的java改造2和xml   java 安卓中有字典数据类型吗?   java如何单元测试guice createinjector方法   java无法为Pulsar设置Zookeeper群集   java我无法解密发送消息AES   Java中的tomcat异步   java如何修复“OAutheException,errorMessage:(#803)您请求的某些别名不存在:您的(应用程序)ID}”   java通过构造函数传递整数