目标是成为最容易使用的Basecamp 3 API版本
basecampy3R的Python项目详细描述
基础课程3
到Basecamp 3 API的易于使用的python接口。
虽然BaseCompy3的目标是在Python2.7中具有同等的功能,但在Python3.4+开发的早期阶段,大多数测试都是在Python3.4+中进行的。
功能
- 简单、类似于aws cli的配置和安装
- 面向对象的api
- 为您处理速率限制、缓存和身份验证!
安装
pip install basecampy3
bc3 configure
按照提示获取访问和刷新令牌,然后将其保存到~/.conf/basecamp.conf
,允许您在不带任何参数的情况下调用Basecamp3()
。你需要先做你自己的Basecamp 3 app integration。
用法
基本示例
frombasecampy3importBasecamp3bc3=Basecamp3()forprojectinbc3.projects.list():print(project.name)new_project=bc3.projects.create("My New Project",description="The best project ever made.")new_project.campfire.post_message("Hello World!")new_message=new_project.message_board.post_message("Check this out",content="This is a new message thread start.")new_message.archive()todolist=new_project.todoset.create("Things to be done")todolist.create("Get Milk")todolist.create("Get Eggs")go_to_bed=todolist.create("Go to bed.")go_to_bed.check()# this is marked as done
API的所有功能尚未提供。如果有任何遗漏,您可以直接使用requests Session object并查阅Basecamp 3 API docs。使用此会话对象的好处是您将受益于身份验证、速率限制和缓存功能。
直接会话示例
frombasecampy3importBasecamp3frompprintimportpprintbc3=Basecamp3()session=bc3._sessionMY_COMPANY_ID=1234567recording_id=123456789project_id=1234567# Reference:# https://github.com/basecamp/bc3-api/blob/master/sections/comments.md#get-commentsBASE_URL="https://3.basecampapi.com/{company_id}/".format(company_id=MY_COMPANY_ID)# base of all API requestsENDPOINT="{base_url}/buckets/{project_id}/recordings/{recording_id}/comments.json"# get comments endpointurl=ENDPOINT.format(base_url=BASE_URL,project_id=project_id,recording_id=recording_id)resp=session.get(url)# make a GET request. Substitute get() with post() or put() or delete() as neededifnotresp.ok:# API returned a 4XX or 5XX errorprint("Something went wrong.")pprint(resp.json())# resp.json() will make a nice dictionary of the JSON response from Basecamp
cli示例
马上就到! 命令行界面,用于在Basecamp中执行任务。 (尚未工作)
$ bc3 projects list
待办事项
- Basecamp 3 API的其余部分
- 命令行工具(不仅仅是“configure”命令)
- 更好的测试覆盖率