包装salesforce.com soap api的python客户机

pyforce的Python项目详细描述


![pypi版本](https://img.shields.io/pypi/v/pyforce.svg)![pypi下载](https://img.shields.io/pypi/dm/pyforce.svg)


简介
==


sforce beatbox/(版本为20.0)。

(https://github.com/superfell/beatbox/issues/6)长话短说,
20.0版本的fork中的python客户端非常有用,因此
返回0.92将是一个错误,但是20.0版本的beatbox也不再被维护(根据问题判断)。` pyforce"建立在
现有版本的基础上,集成了错误修复和新功能。


此模块包含salesforce.com客户端的两个版本:

处理xml乐趣的xmltramp包装器。
pythonclient
封送返回的对象进入正确的python数据类型。例如,integer
字段返回整数。

但是,这次在
没有实现以下api调用:

*emptyRecycleBin
*invalidateSessions
*merge
*process
*queryAll
*undelete
*descibesobject
*describeDataCategoryGroup
*describeDataCategoryGroup Structures

` pyforce`对x>;=6的值支持python 2.x。它可能在2.4中工作,
,但不受官方支持。


基本用法示例通过api与salesforce.com交互需要使用
"安全令牌",该令牌必须附加到密码中。有关
的详细信息,请参阅SFDC文档

PyForce客户端允许您使用SFDC SOQL进行查询。


:'doe','type':'contact','id':'003700000erf6vaac','firstname':'john'}
res[0].id
'003700000erf6vaac'


添加新的潜在客户:

contact={
'type':'lead',
'lastname':'ian',
'firstname':'bentley',
'company':'10gen'
}
res=svc.create(contact)
如果不是res[0]['errors']:
contact_id=res[0]['id']
否则:
引发异常('contact creation failed{0}.format(res[0]['errors'])

批处理自动工作(尽管sfdc限制了数量)r到200个最大值):

contacts=[
{
‘type’:‘lead’,
‘lastname’:‘glick’,
‘firstname’:‘david’,
‘company’:‘individual’
},
{
‘type’:‘lead’,
‘lastname’:‘ian",
‘名字’:‘宾利’,
‘公司’:‘10gen’
}
]
res=svc.create(联系人)


发送新电子邮件,可以选择使用模板,包括附件和创建关联对象的活动:

simple嫒email={
'subject':'test of salesforce sendmail()',
'plaintextbody':'这是一条简单的测试消息',
'toaddresses':'johndoe@example.com,
}
}res
[{errors':[],'success':true}

={
"模板id":"00x80000002h4tv",用于主题和正文的电子邮件模板的id,支持字段从whatid合并。
"targetobjectid":"003808980000gj",电子邮件将发送到的联系人、负责人或用户的ID。
"whatid":"500800000rujo",要在中创建活动的Sobject的ID。
"saveasactivity":true,
"usesignature":true,
'inreplyto':'<;1234567890123456789%example@example.com>;',rfc2822,以前的电子邮件线程。
'引用':'<;1234567890123456789%example@example.com>;',
'文件附件':[{
'正文':base64编码的PNG,
'内容类型':'image/png',
"文件名":"salesforce_logo.png",
"内联":true
}
}
}res
[{errors':[],"success":true}

更多示例
==XML客户机的示例。有关
如何使用python客户端的示例,请参见tests目录。

alesforce pfg适配器`\u
*`salesforce auth plugin`\u
*`salesforce的rsvp`\u

…_` salesforce base connector`:http://plone.org/products/salesforcebaseconnector
。_` salesforce pfg适配器:http://plone.org/products/salesforce pfg adapter
。_` salesforce auth plugin`:http://plone.org/products/salesforceauthplugin
。_` salesforce的rsvp:http://plone.org/products/collective.salesforce.rsvp



==


david lanstein创建了一个基于soap库的"python salesforce工具包"。自2011年6月以来,该项目没有收到任何承诺,因此,该项目被视为已放弃。` python salesforce toolkit`:http://code.google.com/p/salesforce python toolkit/


运行测试
==


在分叉时间,所有测试都是需要访问salesforce环境的集成测试。我打算将这些测试更改为基于存根的单元测试。


从Beatbox文档:

首先,我们需要向Salesforce实例中的Contacts对象添加一些自定义字段:

*登录Salesforce.com实例
*浏览到设置-->;customize-->;联系人-->;字段-->;"新建"按钮
*添加一个标记为"最喜爱的水果"的选择列表(多选),然后添加
*apple
*orange
*pear
*保留默认值3行,字段名应默认为"最喜爱的水果"
*添加一个标记为"最喜爱的水果"的数字。ger",有18位,0位小数
*添加一个标记为"Favorite Float"的数字,有13位,5位小数

/>
其中token是您的salesforce api登录令牌。


add./src'到您的pythonpath


运行测试::

python src/pyforce/tests/test\pythonclient.py

changelog
==br/>

1.7.3(2016-08-22)
bugfix:GetRecordTypes中reduce的初始化值

1.7.2(2015-12-21)
通过一些内联修补将xmlTramp升级到2.18。
尝试travis ci集成。

1.7.1(2015-12-14)
在更新到新样式类时更正了xmlTramp中的回归错误。修复了问题26。

1.7(2015-12-08)
地址类型封送处理到dict.pep8 cleanup。新型异常类。

1.6(2015-04-27)
引入注销功能。新的维护人员。

1.5(2014-10-30)
引入sendmail功能。


1.4(2014-08-14)
引入convertlead功能。

>1.3(2013-11-7)
错误在1.2中引入的修复程序

1.2(2013-10-25)
*支持python 2.7的两个错误修复程序
*修复了一些dos编码问题
这要归功于:@lociii和@gabber7


1.01(2013-04-10)
*修复manifest.in以释放到pypi

1.0(2013-04-01)
*将beatbox重命名为pyforce
*支持提交给python的python对象中的嵌入式词典*将"encryptedstring"添加到封送为字符串的类型列表中。感谢
sobyone.
[davisagli]

*默认情况下更新为使用salesforce.com合作伙伴wsdl的版本20.0。
[davisagli]


19.0(2010-08-23)
----


*更新对
的描述性全局和描述性对象的封送处理响应包括新属性ies现在由api返回。为了向后兼容,我们将describeglobal响应的types属性设置为所有类型的名称列表(salesforce现在在单独的describeglobalsobjectresult对象中返回该列表)。
[davisagli]

*更新为使用salesforce.com p的19.0版本默认情况下为artner wsdl。
另外,默认情况下使用新的login.salesforce.com登录端点。
[davisagli]


16.1(2010-03-11)
----


*除了httplib中的异常之外,还可以从套接字库捕获并重试异常。这修复了版本16.0中引入的回归。
[davisagli]



>16.0(2009-11-12)
----


*封送textarea字段的值时不要删除换行符。
[davisagli]

*如果其python值为no,请确保向fieldstonull添加字段ne.
[rhettg,davisagli]

*修复long类型的数字未转换为字符串的问题。
[spleeman,davisagli]

*仅在重试连接时捕获http异常。
[spleeman,davisagli]


<16.0b1(2009-09-08)
----


*在调试级别记录beatbox调用。
[davisagli]

*修复了与python 2.6兼容的字符串异常。
[davisagli]

*通过搜索方法添加了对sosl搜索的支持。感谢web collective的alex tokar

[davisagli]

*为
将查询结果编组到python对象所需的sobject类型描述添加了可选缓存。这可以避免对每个查询额外的
describesobjects api调用,但意味着如果在salesforce.com中修改了类型元数据,则信息
可能会过时。
默认情况下,缓存处于关闭状态。通过在实例化python客户机时传递
cachetypedescriptions=true来启用它。可以通过调用python
客户端的flushTypeDescriptionsCache方法重置缓存。
[davisagli]

*支持完整的soql语句作为
python客户端的查询方法的参数。旧的由3部分组成的方法签名(字段、sobjecttype、
条件表达式)应该继续工作。
[davisagli]

*在python客户端中,支持关系查询和其他可能返回多种对象的查询。对象类型描述(将字段值编组为正确的python类型所必需的)在第一次使用后在查询的
持续时间内缓存。感谢Quintagroup的
melnychuk taras。
[davisagli]


*在python客户端中,查询现在返回一个类似queryrecordset的列表,其中包含一系列类似dict的queryrecord对象,而不是一个包含dict列表的dict。这允许更多的pythonic访问,例如results[0].id
,而不是results['results'][0]['id']。旧语法应该仍然有效。
感谢Quintagroup的Melnychuk Taras。
[davisagli]

*更新为使用salesforce.com合作伙伴wsdl的版本16.0。
[davisagli]


>0.12(2009-05-13)
----


*如果传递的值计算结果为boolean
false,则使用默认的serverurl值。
[davisagli]

0.11(2009-05-13)
----

*在upsert结果中访问"created"而不是"iscreated"。关闭
http://code.google.com/p/salesforce-beatbox/issues/detail?id=4
[davisagli]

>10.1(未发布)
----

<0.10(2009-05-06)
----


*在创建客户端时添加了可选的serverurl参数。
[davisagli]

----

*

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

推荐PyPI第三方库


热门话题
加密如何在Java中使用Skipjack(skip32)将数据库中的顺序整数随机化   java Android在两个活动之间传递数据获取NullPointerException   在构造函数中传递的java上下文显示错误   java将密钥添加到选定的密钥集   javascript为什么带有特殊字符的字符串在GET和POST方法中的行为不同?   java将反射。方法创建一个函数接口   设置Javasocket的端口   java通过一次按键调用MenuItem   java和引擎加载图形:为什么我的背景纹理很小,而且是颠倒的   如何将UV纹理从blender加载到opengl 安卓 java   跨Java虚拟机实现的jvm Java toString表示?   spring在Java服务器页面的上下文中这叫什么?