You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Salesforce应用安装时程序化配置远程站点源?有无免干预替代方案?

解决Salesforce LWC调用外部API的未授权问题(无需用户手动配置)

方案1:通过PostInstallHandler程序化创建远程站点设置

  • 利用Salesforce的PostInstallHandler接口,在包安装阶段自动创建RemoteSiteSetting记录,避免用户手动配置。
  • 示例代码:
global class RemoteSitePostInstall implements PostInstallHandler {
    global void onInstall(PostInstallContext context) {
        // 先检查是否已存在目标远程站点,避免重复创建
        List<RemoteSiteSetting> existingSites = [
            SELECT Id FROM RemoteSiteSetting 
            WHERE RemoteSiteUrl = 'https://myapi.com'
        ];
        if (existingSites.isEmpty()) {
            RemoteSiteSetting newSite = new RemoteSiteSetting(
                RemoteSiteUrl = 'https://myapi.com',
                IsActive = true,
                Description = '访问外部联系人API的远程站点'
            );
            insert newSite;
        }
    }
}
  • 关键注意点:
    • 该类需设置为global级别,并包含在发布的包内。
    • 类需要具备Modify All Data权限,可通过包的权限集配置,或使用without sharing确保安装时的创建权限。
    • 必须先查询再插入,防止同一org重复创建导致报错。

方案2:使用命名凭据(推荐)

  • 命名凭据是更优的替代方案,无需配置远程站点,还能统一管理API认证信息,且可预配置在包中,用户安装后直接可用。
  • 实现步骤:
    1. 在开发org中创建命名凭据,设置目标API根URL为https://myapi.com,根据API要求选择认证方式(如无认证、OAuth 2.0等)。
    2. 将命名凭据添加至包内,发布后用户安装时会自动导入该配置。
    3. LWC中调用API时,使用命名凭据别名,示例:
import { LightningElement } from 'lwc';
import { fetch } from 'lightning/uiRecordApi';

export default class ContactApiCaller extends LightningElement {
    async callExternalApi() {
        try {
            // 格式:callout:命名凭据别名/API路径
            const response = await fetch('callout:My_External_API/contact', {
                method: 'POST',
                body: JSON.stringify({ /* 待发送的数据 */ })
            });
            const data = await response.json();
            // 处理返回数据逻辑
        } catch (error) {
            // 错误处理逻辑
        }
    }
}
  • 核心优势:
    • 完全无需用户手动配置任何站点或认证信息。
    • 支持多种安全认证方式,比远程站点设置更安全可控。
    • 可配置超时、代理等高级API调用参数。

额外注意事项

  • 如果API URL是动态可变的(不同用户使用不同地址),可在包中添加自定义设置或自定义元数据类型,让用户安装后按需配置;若URL固定,命名凭据是完全无用户干预的最优解。
  • 确保包的权限集中包含命名凭据调用权限,避免用户安装后出现权限不足问题。

内容的提问来源于stack exchange,提问作者R_M_R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:52:51