用于python的basecrm官方api v2库客户端

basecrm的Python项目详细描述


basecrm python
====


>basecrm官方api v2库客户端python


installation
----


basecrm包可以通过pip安装,也可以通过简易安装:

。代码::bash

$pip install--升级basecrm




代码::bash

$easy_install--upgrade basecrm

首先克隆回购协议,然后执行:

。代码::bash

$python setup.py install

代码::python

import basecrm


用法
----

…代码::python


代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')


client options
~~~~~~~~~~~~~~~~~~~~~

>实例化客户端时,可以使用以下选项:

-**access_token**:personal access token
-**基本URL**:baseapi的url
-**用户\ u代理**:所有请求的默认用户代理
-**超时**:请求超时
-**详细**:详细/调试模式

体系结构
~~~~~~~~~~~~~~

在深入研究之前,库遵循一些您应该理解的体系结构原则。1。与资源的交互是通过
服务对象完成的。2。服务对象在客户机
实例上作为属性公开。三。服务对象公开面向资源的操作。4.
操作返回支持属性样式访问的字典,一个la
javascript(感谢bunch和它的form munch)。

例如,要与deals api交互,您将使用
``basecrm.dealsservice`,如果调用:

代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.deals_basecrm.dealservice

要检索资源列表并使用筛选,您将调用`````
方法:

代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.deals.list(organization_id=google.id,hot=true)list(dict munch)

代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.deals.list(*{custom_fields[name]:1})


要按唯一标识符查找资源,请使用"retrieve"方法:

。代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.deals.retrieve(id=google.id)

例如,如果您想创建一个新的交易,您将调用:

…代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
deal=client.deals.create(name='网站重新设计',联系@id=coffeeshop.id)

deal.currency='USD'


client.deals.update(deal.id,deal)


销毁资源使用``destroy``方法:

。代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.deals.destroy(coffeshopdeal.id)

请联系
相应的服务文件以获取深入的文档。

代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
lead=client.leads.create(organization_name='design service company')

client.leads.update(lead.id,lead)

分页
~~~~~~~~~~~~~~~

每页查询参数。
要选择页,请使用标准页查询参数。
默认页始终是第一页。默认限制为25,可返回的最大数目为100。

…代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
leads=client.leads.list(per_page=50,page=2)

由于多种原因(例如网络错误,
身份验证错误,无效参数错误等)而引发。下面的示例演示如何正确处理异常:

。代码::python

尝试:
实例化客户端。
client=basecrm.client(access_token='<;your_personal_access_token>;')
lead=client.leads.create(organization嫒name='design service company')
print lead
除了basecrm.configurationerror as e:
无效的客户端配置选项
pass
除了basecrm.resourcererror as e:
与资源相关错误
打印'http status='+e.http_status
打印'request id='+e.logref
对于e.errors中的错误:
打印'field='+error.field
打印'code='+error.code
打印'message='+error.message
打印"details="+错误。除basecrm外,details
。requesterror为e:
无效的查询参数、身份验证错误等。
传递
除e:
其他类型的异常外,可能与连接相关的
pass

---------


下面的示例代码演示如何使用高级包装器执行完全同步流。

首先需要一个"basecrm.client"实例。高级"basecrm.sync"包装器使用"basecrm.syncservice"与sync api进行交互。
除了客户端实例之外,还必须在"device-uuid"参数中提供设备的uuid。设备的uuid不能在同步会话之间更改,否则同步服务将无法识别该设备,并将再次发送所有数据。

…代码::python

client=basecrmclient(access_token='<;your_personal_access_token>;')
sync=basecrm.sync(client=client,device_uuid='<;your_devices_uid')

现在您所要做的就是调用"fetch"方法并传递一个lambda或函数,您可以使用它来存储已将数据提取到数据库。

…代码::python

def synchronize(meta,data):
result=dao.execute(table=meta.type,
statement=meta.sync.event\u type,
properties=data)
如果结果为basecrm.sync.nack,则返回basecrm.sync.ack

sync.fetch(synchronize)

请注意,必须返回"basecrm.sync.ack"或"basecrm.sync.nack"。

操作
----


每个操作的文档可以在``basecrm/services.py``
文件中找到。


帐户
~~~~~~~

……代码::python

client=basecrm.client(access\u token='<;your\u personal\u access\u token>;')
client.accounts\gt;basecrm.accountsservice

操作:

*检索帐户详细信息-``client.accounts.self`

associatedcontact
~代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.associated_contactsα=gt;basecrm.associatedcontactsservice

操作:

*检索交易的关联联系人-"client.associated\u contact s.list`
*创建关联联系人-"client.associated\u contacts.create`
*删除关联联系人-``客户机。关联的联系人。销毁``

代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.contacts_=>;basecrm.contactsservice

操作:

*检索所有联系人-``client.contacts.list`
*创建联系人-``client.contacts.create`
*检索单个联系人-``client.contacts.retrieve`
*更新联系人-``client.contacts.update`
*删除联系人-``客户。联系人。销毁``


交易
~~~~~

…代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.deals_=>;basecrm.dealsservice

操作:

*检索所有交易-``client.deals.list`
*创建交易-``client.deals.create`
*检索单个交易-`` client.deals.retrieve``
*更新交易-``client.deals.update`
*删除交易-``client.deals.destroy``

**有关交易值的说明**

在创建或修改交易时,最好使用字符串中的小数或直接使用字符串作为交易值。这保证了正确的精度。代码::python

deal.value=decimal("1000.99")
deal.value="1000.00"

代码::python

deal.value=1000.99
deal.value=decimal(1000.99)


dealsource
~代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.deal_sources_basecrm.dealsourcesservice

操作:

*检索所有源-``client.deal\sources.list`
*创建新源-``client.deal\sources.create`
*检索单个源-``client.deal\sources.retrieve`
*更新源-``client.deal\sources.update`
*删除源-``客户端.交易源.销毁``

代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.deal_unqualified_reasons_basecrm.dealunqualifiedreasonsservice

操作:

*检索所有交易不合格的原因-``client.deal不合格的原因。list``
*创建一个交易不合格的原因-``client.deal不合格的原因。create`
*检索单个交易不合格的原因-``客户。交易不合格原因。检索``
*更新交易不合格原因-``client.deal不合格原因。更新``
*删除交易不合格原因-``client.deal不合格原因。销毁``

lead
~~~~

……代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.leads_=>;basecrm.leadsservice

操作:

*检索所有线索-``client.leads.list`
*创建线索-``client.leads.create`
*检索单个线索-`` client.leads.retrieve`
*更新lead-``client.leads.update`
*删除lead-``client.leads.destroy`

leadsource
~~~~~~~~

……代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.lead_sources=>;basecrm.leadsourcesservice

操作:

*检索所有源-``client.lead\sources.list`
*创建新源-``client.lead\sources.create`
*检索单个源-``client.lead\sources.retrieve`
*更新源-``client.lead\sources.update`
*删除源-"client.lead_sources.destroy``

leadunqualif原因是……代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.lead_unqualified_reasons_basecrm.leadunqualifiedreasonservice

操作:

*检索所有lead不合格的原因-``客户端.lead不合格的原因。列出``

~~~~~~

……代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.line_items_basecrm.lineitemsservice

操作:

*检索订单的行项目-``客户端行项目.列表`
*创建行项目-``客户端行项目.创建``
*检索单行项目-``客户端行项目.检索`
*删除行项目-``客户端。行项目。销毁``

代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.loss_reasons_basecrm.lossreasonservice

操作:

*检索所有原因-``client.loss`.reasons.list`
*创建丢失原因-``client.loss`.reasons.create`
*检索单个原因-``client.loss`.reasons.retrieve`
*更新丢失原因-``client.loss`.update`
*删除原因-``client.loss\u reasons.destroy``

注意
~~~~~

…代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.notes_=>;basecrm.notessservice

操作:

*检索所有注释-``client.notes.list`
*创建注释-``client.notes.create`
*检索单个注释-`` client.notes.retrieve`
*更新便笺-``client.notes.update`
*删除便笺-``client.notes.destroy``

订单
~~~~

……代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.orders_=>;basecrm.ordersservice

操作:

*检索所有订单-``client.orders.list`
*创建订单-``client.orders.create`
*检索单个订单-``client.orders.retrieve`
*更新订单-``client.orders.update`
*删除订单-``客户端。命令。销毁``

pipeline
~~~~~~~~~~

…代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.pipelinesrservice


操作:

*检索所有管道-``client.pipelines.list`

product
~代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.products_=>;basecrm.productsservice

操作:

*检索所有产品-``client.products.list`
*创建产品-``client.products.create`
*检索单个产品-``client.products.retrieve`
*更新产品-``client.products.update`
*删除产品-`` client.products.destroy``

source(已弃用,请改用dealsource、leadsource)
~~~~~

……代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.sources_=>;basecrm.sourcesservice

操作:

*检索所有源-``client.sources.list`
*创建源-``client.sources.create`
*检索单一源-``客户端.源.检索`
*更新源-``客户端.源.更新`
*删除源-``客户端.源.销毁`

阶段
~~~~

代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.stages\gt;basecrm.stageservice


操作:

*检索所有阶段-``client.stages.list``

tag
~~


代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.tags=>;basecrm.tagsservice

操作:

*检索所有标记-``client.tags.list`
*创建标记-``client.tags.create`
*检索单个标记-``client.tags.retrieve`
*更新标记-``client.tags.update`
*删除标记-`` client.tags.destroy``

task
~~~~~

…代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.tasks_=>;basecrm.tasksservice

actions:

*检索所有任务-``client.tasks.list`
*创建任务-``client.tasks.create`
*检索单个任务-`` client.tasks.retrieve`
*更新任务-``client.tasks.update`
*删除任务-``client.tasks.destroy``

textmessage
~~~~~~~~~~

……代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.text_messages_=>;basecrm.textmessagesservice

操作:

*检索文本消息-``client.text messages.list`
*检索单个文本消息-``client.textmessages.retrieve`

user
~~~~~

。代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.users_=>;basecrm.usersservice

操作:

*检索所有用户-``client.users.list`
*检索单个用户-``client.users.retrieve`
*检索正在验证用户-``client.users.self`

代码::python

client=basecrm.client(访问令牌='<;您的个人访问令牌>;')
client.visits=>;basecrm.visitsservice


操作:

*检索访问-``client.visits.list`

visitoutcome
~代码::python

client=basecrm.client(access_token='<;your_personal_access_token>;')
client.visit_outcomes=>;basecrm.visitoutcomesservice

操作:

*检索访问结果-``客户端。访问结果。列出``



测试
----


运行所有测试套件:

。代码::bash

$python setup.py test

代码::bash

$python setup.py test-s basecrm.test.test关联的联系人服务关联的联系人服务测试

他们需要这个包的名称,所以我们可以在**basecrm**名称下发布官方包装。

许可证
——



错误报告
——


report`here<;https://github.com/basecrm/basecrm python/issues>;`\br/>
contact
——

标签:

  • 代码
  • gt
  • client
  • token
  • api
  • 客户端
  • 官方
  • access
  • v2
  • basecrm
  • 欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


    热门话题
    java使用ObjectOutput/InputStream从自定义位置读/写   Java队列数组只打印出打印方法中for循环中的最后一个元素   java如何使用searchManager搜索和筛选listview   java ValueAnimator更改背景颜色   java什么是AOSP工具链?   序列化Java/Serializable仅覆盖已更改的对象   java Android单例类仅在第二次刷新时更新   将文本追加到JTextPane时,JTextPane的java滚动条不可见   java行为和繁忙指示器   javaspring,Thymeleaf和CSS如何给错误着色   java如何在两个测试类之间共享外部资源?   java Druid longSum度量未填充   按下按钮时,java列表不会显示(+字符串参数“流派”不存在)   java在Hibernate中如何延迟加载子记录?   java为对象提供随机统计信息   java如何使用GWT编辑器框架编辑多值字段?