概述
Salesforce连接器提供从Salesforce对象(标准对象、自定义对象)获取数据并注册到 Fess 索引的功能。
此功能需要 fess-ds-salesforce 插件。
支持的对象
标准对象: Account、Contact、Lead、Opportunity、Case、Solution等
自定义对象: 自己创建的对象
Knowledge文章: Salesforce Knowledge
前提条件
需要安装插件
需要创建Salesforce Connected App(连接应用程序)
需要设置OAuth认证
需要对象的读取访问权限
插件安装
从管理界面的「系统」→「插件」进行安装。
或者,详情请参阅 插件。
配置方法
从管理界面的「爬虫」→「数据存储」→「新建」进行配置。
基本设置
| 项目 | 设置示例 |
|---|---|
| 名称 | Salesforce CRM |
| 处理器名称 | SalesforceDataStore |
| 启用 | 开 |
参数设置
OAuth Token认证(推荐):
OAuth Password认证:
参数列表
脚本设置
可用字段
| 字段 | 说明 |
|---|---|
object.type | 对象类型(例: Case、User、Solution) |
object.title | 对象名称 |
object.description | 对象描述 |
object.content | 对象的文本内容 |
object.id | 对象ID |
object.content_length | 内容长度 |
object.created | 创建时间 |
object.last_modified | 最后更新时间 |
object.url | 对象的URL |
object.thumbnail | 缩略图URL |
Salesforce Connected App设置
1. 创建Connected App
在Salesforce Setup中:
打开「应用程序管理器」
点击「新建Connected App」
输入基本信息:
Connected App名称: Fess Crawler
API名称: Fess_Crawler
联系邮箱: your-email@example.com
勾选「启用API(启用OAuth设置)」
2. OAuth Token认证设置(推荐)
在OAuth设置中:
勾选「使用数字签名」
上传证书(按照下面的步骤创建)
选择的OAuth范围:
Full access (full)
Perform requests on your behalf at any time (refresh_token, offline_access)
点击「保存」
复制Consumer Key
创建证书:
将证书(certificate.crt)上传到Salesforce, 将私钥(private_key.pem)的内容设置到参数。
3. OAuth Password认证设置
在OAuth设置中:
回调URL:
https://localhost(不会使用但必需)选择的OAuth范围:
Full access (full)
Perform requests on your behalf at any time (refresh_token, offline_access)
点击「保存」
复制Consumer Key和Consumer Secret
获取安全令牌:
在Salesforce中打开个人设置
点击「重置我的安全令牌」
复制通过邮件发送的令牌
4. 授权Connected App
在「管理」→「管理Connected App」中:
选择创建的Connected App
点击「编辑」
将「允许的用户」更改为「管理员批准的用户已预先授权」
分配配置文件或权限集
自定义对象设置
爬取自定义对象
在参数中使用 custom 指定自定义对象名:
各对象的字段映射:
字段映射规则
<对象名>.title- 用于标题的字段(单个字段)<对象名>.contents- 用于内容的字段(可用逗号分隔指定多个)<对象名>.descriptions- 用于描述的字段(可用逗号分隔指定多个)<对象名>.thumbnail- 用于缩略图的字段(单个字段)
Note
标准对象使用大写下划线命名(UPPER_UNDERSCORE)。例如: ACCOUNT.title=Name
使用示例
爬取标准对象
参数:
脚本:
爬取自定义对象
参数:
脚本:
爬取沙盒环境
参数:
脚本:
故障排除
认证错误
症状: Authentication failed 或 invalid_grant
确认事项:
OAuth Token认证时:
确认Consumer Key是否正确
确认私钥是否正确复制(换行是否为
\n)确认证书是否已上传到Salesforce
确认用户名是否正确
OAuth Password认证时:
确认Consumer Key和Consumer Secret是否正确
确认安全令牌是否正确
确认是否没有将密码和安全令牌连接(需分别设置)
通用:
确认base_url是否正确(生产环境还是沙盒环境)
确认Connected App是否已授权
无法获取对象
症状: 爬取成功但对象数为0
确认事项:
确认用户是否有对象的读取权限
自定义对象时,确认对象名是否正确(API名称)
确认字段映射是否正确
在日志中确认错误信息
自定义对象名称
确认自定义对象的API名称:
在Salesforce Setup中打开「对象管理器」
选择自定义对象
复制「API名称」(通常以
__c结尾)
示例:
显示标签: Product
API名称: Product__c (使用这个)
确认字段名
确认自定义字段的API名称:
打开对象的「字段和关系」
选择自定义字段
复制「字段名称」(通常以
__c结尾)
示例:
字段显示标签: Product Description
字段名称: Product_Description__c (使用这个)
API速率限制
症状: REQUEST_LIMIT_EXCEEDED
解决方法:
减少 ``number_of_threads``(设置为1)
增加爬取间隔
确认Salesforce API使用情况
如需要,购买额外的API限制
有大量数据的情况
症状: 爬取耗时长或超时
解决方法:
将对象分割到多个数据存储
调整 ``number_of_threads``(2~4左右)
分散爬取计划
只映射必要的字段
私钥格式错误
症状: Invalid private key format
解决方法:
确认私钥的换行是否正确为 \n: