跳转到主要内容

提供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 实例中设置安全令牌,并将其附加到您的密码 要这样做,请按照以下说明操作:

  1. 登录到您的 Salesforce.com 实例

  2. 单击“设置”

  3. 我的个人信息

  4. 重置我的安全令牌

  5. 编辑 sfconfig.py 以具有“mypassword[token]”(其中 [token] 是您的安全令牌)

将您的 IP 地址列入白名单

可以在以下位置执行此操作:

  1. 登录到您的 Salesforce.com 实例

  2. 单击“设置”

  3. 安全控制

  4. 网络访问

在生产环境中,后者可能更可取,因为安全令牌更有可能在密码更新时随时间而更改。对于测试,两者均可。

您可以在 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)

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 (44.1 kB 查看散列

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面