提供Zope 2中Salesforce API的访问权限,基于beatbox库
项目描述
概述
Salesforce Base Connector产品提供了一种Zope感知工具,用于与基于Python的Beatbox Salesforce客户端交互,并存储连接到Salesforce.com实例的凭据(用户名和密码)。
本产品的理由
Salesforce.com 提供了一个可扩展、强大的平台,用于执行客户关系管理(CRM)任务,包括销售、营销、非营利性成员组织以及客户服务。
Beatbox 是 Salesforce.com API(版本 16.0)的 Python 包装器,为该产品提供基础,但在 Zope/Plone 集成空间中存在一些局限性。
Salesforce Base Connector 旨在增强 Beatbox,为 Zope/Plone 开发者提供方便且干净集成的功能集。
管理 Salesforce 凭据
管理到 Salesforce 的 HTTP 连接
管理 Zope 对 Salesforce 的查看和编辑操作的权限
提供从受限 Python 中访问 Salesforce API 的接口;例如,在 Python 脚本对象和 Zope 页面模板中
此外,Salesforce Base Connector 的目的是使 Zope/Plone 开发项目与用作 Salesforce 接口的特定 Python 工具包解耦。如果出现 Beatbox 的更当前替代方案,Salesforce Base Connector 可以更新以使用此代码库作为其底层框架。
Salesforce Base Connector 旨在用作您自己的 Plone/Salesforce 应用的基础组件。
依赖关系
与 Zope 2.9、2.10、2.11 和 2.12 兼容。
依赖于 Beatbox 库,该库是 Salesforce.com API(版本 16.0)的 Python 包装器。需要 Beatbox 16.0 或更高版本。
要下载和安装 beatbox,请访问
http://code.google.com/p/salesforce-beatbox/
如果通过 setuptools 或 zc.buildout 安装 salesforcebaseconnector,beatbox 应自动作为依赖项安装。
安装和配置
Buildout
将 Products.salesforcebaseconnector 添加到您的 buildout 配置的 eggs 部分,并运行 buildout。
重新启动 Zope。
在 ZMI 中,将 Salesforce Base Connector 添加到站点的根目录,然后设置用户名和密码。在存储之前将测试凭据的有效性。
传统 Zope 产品
安装依赖关系(有关安装说明,请参阅 beatbox/README.txt)
将 salesforcebaseconnector 产品包解压到 Zope/Plone 实例的 Products 文件夹中。检查您的所有权和权限。
重新启动 Zope。
在 ZMI 中,将 Salesforce Base Connector 添加到站点的根目录,然后设置用户名和密码。在存储之前将测试凭据的有效性。
其他文档和支持
产品主页是 http://plone.org/products/salesforcebaseconnector。有关文档区域和问题跟踪器,请访问以下链接位置。
有关 Salesforce.com API 可用的各种 API 调用的示例,请参阅 interfaces/salesforcebaseconnector.py
存在一个名为 Plone Salesforce Integration 的 Google Group,其主要目的是讨论和开发使 Plone 与 Salesforce.com 兼容的工具。如果您有任何问题,加入该组并向邮件列表发布是获得支持的可能最佳方式。
如果上述方法都不可行,请尝试使用 Plone 用户邮件列表或 #plone irc 频道进行支持请求。如果您在那里无法得到问题的答案,或者有兴趣帮助开发该产品,请参阅下面的鸣谢部分,了解您可能需要联系的个人。
鸣谢
西雅图和波特兰的 Plone & Salesforce 团队
Jon Baldivieso <jonb –AT– groundwire –DOT– org>
Andrew Burkhalter <andrewburkhalter –AT– gmail –DOT– com>
Brian Gershon <briang –AT– webcollective –DOT– coop>
David Glick <davidglick –AT– groundwire –DOT– org>
Jesse Snyder <jesses –AT– npowerseattle –DOT– org>
Jesse Snyder 和 NPower Seattle 为 Salesforce Base Connector 代码库的建立奠定了基础
Simon Fell 为提供 Salesforce.com API 的 beatbox Python 包装器
Salesforce.com Foundation 和 Enfold Systems 为他们的礼物和工作在 beatbox 上(请参阅: http://gokubi.com/archives/onenorthwest-gets-grant-from-salesforcecom-to-integrate-with-plone)
请参阅 CHANGES.txt 文件,以获取帮助特定功能或错误的列表中的人员。
许可证
在 GPL 许可下分发。
有关详细信息,请参阅 LICENSE.txt 和 LICENSE.GPL。
运行测试
要在类 Unix 环境中运行测试,请执行以下操作:
$ cd $INSTANCE/Products/salesforcebaseconnector/tests $ cp sfconfig.py.in sfconfig.py Then edit sfconfig.py with your Salesforce.com USERNAME and PASSWORD $ cd $INSTANCE $ ./bin/zopectl test -s Products.salesforcebaseconnector
关于运行测试的常见问题解答
如果您看到以下错误消息,并且您确定您的登录/密码组合 确实 有效
SoapFaultError: 'INVALID_LOGIN' 'INVALID_LOGIN: Invalid username or password or locked out.'
您可能遇到了 Salesforce.com 中的几种安全措施之一。您可以选择以下操作之一。
在您的 Salesforce 实例中设置安全令牌,并将其附加到您的密码 要这样做,请按照以下说明操作:
登录到您的 Salesforce.com 实例
单击“设置”
我的个人信息
重置我的安全令牌
编辑 sfconfig.py 以具有“mypassword[token]”(其中 [token] 是您的安全令牌)
将您的 IP 地址列入白名单
可以在以下位置执行此操作:
登录到您的 Salesforce.com 实例
单击“设置”
安全控制
网络访问
在生产环境中,后者可能更可取,因为安全令牌更有可能在密码更新时随时间而更改。对于测试,两者均可。
您可以在 http://www.salesforce.com/security/ 上找到所需的相关信息。
如果在中途终止了测试的运行,从而绕过了每个测试运行后的清理(即删除假联系人),则测试通常会失败。如果您遇到了有关 Salesforce 实例中联系人数量的错误断言,请尝试搜索并清理假约翰和简·多伊联系人。
变更历史
1.4 (2010-08-23)
将客户端存储在 ZODB 连接对象中,而不是在易失性属性中。[davisagli]
1.3 (2010-06-17)
添加了一个 validateCredentials 方法,可以从远程监视器使用,以确认基本连接器仍然能够连接到 Salesforce。[davisagli]
确保从受限 Python 允许对 QueryRecord 对象进行项目访问。[davisagli]
确保从受限 Python 可以访问 QueryRecordSets。[davisagli]
1.2 (2009-11-12)
确保从受限 Python 可以访问 QueryRecords。这修复了 http://plone.org/products/salesforcebaseconnector/issues/6 [davisagli]
避免在 Zope 2.12 中从 Globals 中导入已弃用。[davisagli]
已确认与 Plone 4 兼容。[davisagli]
1.2b2 (2009-09-11)
启用了 beatbox 类型描述缓存。如果您编辑 Salesforce 中的对象模式,则需要转到 portal_salesforcebaseconnector 并按“清除缓存”按钮,或者重新启动 Zope。[davisagli]
1.2b1 (2009-09-08)
添加了 beatbox 16.0 的搜索方法。
修改了查询方法的签名,以匹配 beatbox 和 Salesforce.com API。现在期望单个完整的 SOQL 语句,而不是旧的 3 部分字段列表、sObject 类型以及可选的 WHERE 子句。旧的方法签名已弃用,但应该仍然有效。[davisagli]
重构了会话超时处理,以使用“recover_from_session_timeout”装饰器来避免代码重复。[davisagli]
将 _getClient 方法替换为名为 client 的属性。_getClient 现已弃用。[davisagli]
在 ZMI 中添加了用于刷新 beatbox 类型描述缓存的按钮。[davisagli]
现在需要 beatbox 16.0dev 或更高版本。[davisagli]
按 100 个对象类型分批调用 describeSObjects(这是 API 中最近版本的限制)。[davisagli]
1.1.1 (2009-05-13)
除非它与 beatbox 的默认值不同,否则不要持久化 serverUrl。[davisagli]
1.1 (2009-05-13)
修复了配置表单,如果表单验证失败,则不会擦除您的表单值。[davisagli]
添加了配置 Salesforce API SOAP 终端(服务器 URL)的选项。[davisagli]
从 ToolInit 调用中删除了已弃用的参数 product_name,这在我们最早期的 Salesforce Base Connector 版本 2.5.5 之前就已经不存在了。[andrewb]
1.0.1 最终版 (2009-01-20)
修复了包装问题,并将sfconfig.py包含在1.0最终版本中[andrewb]
1.0最终版本(2009-01-13)
更新了beatbox依赖到版本0.9.1.1[davisagli]
不要使用Salesforce.com的商标图标[davisagli]
1.0c1(2008-12-22)
使用“管理门户”权限保护基础连接器的查询、queryMore、retrieve、getDeleted和getUpdated方法,而不是使它们公开可访问。请注意,这意味着任何受限制的Python调用这些方法(例如页面模板或Python脚本)将需要使用具有此权限的代理角色才能继续运行[davisagli]
不要在配置表单中显示已配置的密码[davisagli]
重构凭证检查,使无效的凭证导致用户显示警告,而不是静默失败。这解决了问题#2[andrewb, davisagli]
集成测试套件全部基于CMFTestCase和创建CMF站点,而不是基于PloneTestCase和Plone站点,以提高性能[andrewb]
1.0-alpha3
添加了新的公开支持的API“listFieldsRequiredForCreation”,该API封装了在通过Salesforce.com SOAP API创建对象时哪些字段是必需的一些规则。其优点是,额外的包无需重新生成以下内容,这些内容可能无论如何都会演变
- not fieldData.nillable
not fieldData.defaultedOnCreate and fieldData.createable
listFieldsRequiredForCreation接受Salesforce对象类型作为其唯一必需参数(Jesse Snyder)
移除不必要的portal_skins FSDV(Jesse Snyder)
改进了接口的docstrings(Jesse Snyder)
1.0-alpha2
更新CMFCore权限导入以与CMF-2.1.0兼容(Emyr Thomas)
与Plone 3.0最终版本进行了测试(Andrew Burkhalter)
1.0-alpha1
首次导入和创建独立产品
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
Products.salesforcebaseconnector-1.4.zip的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | c6b3d755d84a3bc176fd8baaa0be0c2c7a7aefd12af8b1812fb3379fa7e415bb |
|
MD5 | a809d4905b9d17d383477feee0f3a696 |
|
BLAKE2b-256 | 1ef7dda3b5e1f829b5a04e8abaa5a3de8dd4f008c73865c0daadc0e8c1ef4eea |