Salesforce
Adobe Experience Platform可讓您從外部來源擷取資料,同時使用Experience Platform服務來建構、加標籤及增強傳入資料。 您可以從多種來源(例如Adobe應用程式、雲端儲存、資料庫和許多其他來源)內嵌資料。
Experience Platform支援從協力廠商CRM系統擷取資料。 CRM提供者的支援包括Salesforce。
在Azure上設定Experience Platform的Salesforce來源 azure
請依照下列步驟,瞭解如何在Azure上為Experience Platform設定Salesforce帳戶。
用於連線到Azure的IP位址允許清單
您必須先將區域特定的IP位址新增至允許清單,才能將來源連線至Azure上的Experience Platform。 未能將您區域特定的IP位址新增到允許清單可能會導致使用來源時的錯誤或效能不佳。 如需詳細資訊,請閱讀IP位址允許清單頁面。
-
40.70.226.96/28
-
40.70.226.32/28
-
52.232.229.255
-
52.232.229.253
-
40.70.226.144/28
-
40.70.226.64/28
-
40.70.225.240/28
-
40.70.225.224/28
-
40.70.224.64/29
-
40.70.226.80/28
-
40.70.226.176/28
-
52.232.229.230
-
40.70.226.128/28
-
40.70.226.0/28
-
40.70.226.16/28
-
52.138.119.167
-
40.70.226.160/28
-
40.70.226.192/28
-
40.70.226.48/28
-
20.96.243.176
-
40.70.226.112/28
-
40.70.226.208/28
-
40.74.4.144/28
-
40.74.3.176/28
-
40.74.5.128/28
-
40.74.4.176/28
-
40.74.6.112/28
-
40.74.7.128/28
-
40.74.6.144/28
-
51.105.144.81
-
52.142.236.87
-
40.74.6.80/28
-
20.101.246.9
-
40.74.7.208/28
-
40.74.6.128/28
-
40.74.7.176/28
-
51.124.70.4
-
40.74.7.144/28
-
108.141.12.47
-
20.50.23.153
-
51.144.184.248/29
-
40.74.7.160/28
-
40.74.7.192/28
-
51.105.144.1
-
40.74.4.160/28
-
40.74.6.96/28
-
20.43.111.32/28
-
20.43.110.144/28
-
20.53.111.113
-
20.227.32.175
-
20.43.110.96/28
-
20.43.110.64/28
-
20.193.56.144/28
-
20.43.110.192/28
-
20.43.97.95
-
20.43.111.16/28
-
20.43.110.128/28
-
20.40.185.111
-
20.193.56.160/28
-
20.43.110.112/28
-
40.82.220.111
-
20.43.111.0/28
-
20.193.38.208/28
-
20.43.110.80/28
-
20.43.110.176/28
-
20.43.110.48/28
-
20.193.36.37
-
20.43.110.208/28
-
20.43.110.224/28
-
20.43.110.160/28
-
20.40.185.225
-
20.43.110.240/28
-
20.193.56.128/28
-
20.40.185.185
-
20.116.159.48/28
-
20.116.159.144/28
-
20.116.159.96/28
-
20.220.243.238
-
20.116.159.80/28
-
20.116.159.32/28
-
20.151.241.138
-
4.172.28.20
-
20.151.241.124
-
20.116.248.0/28
-
20.116.155.128/28
-
20.116.159.64/28
-
20.116.159.192/28
-
20.116.159.176/28
-
20.116.175.240/28
-
20.116.248.16/28
-
20.116.158.240/28
-
20.116.159.112/28
-
20.151.240.247
-
20.151.241.173
-
20.116.159.128/28
-
20.116.159.160/28
-
20.116.159.0/28
-
20.104.5.248
-
20.116.175.224/28
-
20.116.159.208/28
-
20.116.159.224/28
-
20.162.155.16/28
-
20.162.154.96/28
-
20.26.64.0/28
-
20.26.64.96/28
-
20.162.154.64/28
-
20.108.200.27
-
20.162.154.80/28
-
20.162.153.192/28
-
20.108.200.61
-
20.162.154.48/28
-
20.162.154.192/28
-
20.162.154.0/28
-
20.26.64.16/28
-
20.162.154.112/28
-
20.162.153.32/28
-
20.254.80.141
-
20.162.153.208/28
-
20.108.203.20
-
20.26.64.48/28
-
20.162.154.240/28
-
20.162.154.208/28
-
20.162.154.160/28
-
20.108.205.182
-
20.108.202.198
-
20.162.154.32/28
-
20.162.153.16/28
-
4.188.92.84
-
4.224.5.224/28
-
4.224.7.32/28
-
4.188.92.87
-
4.188.89.92
-
4.224.5.112/28
-
4.224.6.80/28
-
4.224.144.224/28
-
4.224.144.240/28
-
4.224.6.96/28
-
4.188.89.255
-
4.188.94.32/28
-
4.224.5.96/28
-
4.224.6.64/28
-
4.224.7.48/28
-
4.224.5.208/28
-
4.188.90.65
-
4.224.6.16/28
-
4.224.6.0/28
-
4.224.5.192/28
-
4.224.7.16/28
-
4.188.90.67
-
4.188.90.17
-
4.188.94.48/28
-
4.224.6.112/28
-
4.224.5.240/28
-
4.224.7.0/28
從Salesforce到XDM的欄位對應
若要在Salesforce與Experience Platform之間建立來源連線,Salesforce來源資料欄位必須先對應到適當的目標XDM欄位,才能內嵌到Experience Platform中。
請參閱下列內容,以取得有關Salesforce資料集與Experience Platform之間的欄位對應規則的詳細資訊:
設定Salesforce名稱空間和結構描述自動產生公用程式
若要使用Salesforce來源做為B2B-CDP的一部分,您必須先設定Postman公用程式來自動產生Salesforce名稱空間和結構描述。 下列檔案提供有關設定Postman公用程式的額外資訊:
- 您可以從此GitHub存放庫下載名稱空間和結構描述自動產生公用程式集合和環境。
- 如需有關使用Experience Platform API的資訊,包括如何收集必要標題的值以及讀取範例API呼叫的詳細資訊,請參閱Experience Platform API快速入門指南。
- 如需如何產生Experience Platform API認證的詳細資訊,請參閱驗證及存取Experience Platform API教學課程。
- 如需如何為Experience Platform API設定Postman的詳細資訊,請參閱設定開發人員主控台和 Postman上的教學課程。
透過Experience Platform開發人員主控台和Postman設定,您現在可以開始將適當的環境值套用至您的Postman環境。
下表包含範例值,以及有關填入Postman環境的其他資訊:
table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 6-row-3 7-row-3 8-row-3 9-row-3 10-row-3 11-row-3 12-row-3 13-row-3 14-row-3 15-row-3 16-row-3 17-row-3 layout-auto | ||
---|---|---|
變數 | 說明 | 範例 |
CLIENT_SECRET |
用來產生{ACCESS_TOKEN} 的唯一識別碼。 如需如何擷取{CLIENT_SECRET} 的詳細資訊,請參閱有關驗證及存取Experience Platform API的教學課程。 |
{CLIENT_SECRET} |
JWT_TOKEN |
JSON Web權杖(JWT)是用於產生{ACCESS_TOKEN}的驗證認證。 如需如何產生{JWT_TOKEN} 的相關資訊,請參閱有關驗證及存取Experience Platform API的教學課程。 |
{JWT_TOKEN} |
API_KEY |
用於驗證Experience Platform API呼叫的唯一識別碼。 如需如何擷取{API_KEY} 的詳細資訊,請參閱有關驗證及存取Experience Platform API的教學課程。 |
c8d9a2f5c1e03789bd22e8efdd1bdc1b |
ACCESS_TOKEN |
完成對Experience Platform API的呼叫所需的授權權杖。 如需如何擷取{ACCESS_TOKEN} 的詳細資訊,請參閱有關驗證及存取Experience Platform API的教學課程。 |
Bearer {ACCESS_TOKEN} |
META_SCOPE |
關於Marketo,此值是固定的,並且一律設定為: ent_dataservices_sdk 。 |
ent_dataservices_sdk |
CONTAINER_ID |
global 容器保有所有標準Adobe和Experience Platform合作夥伴提供的類別、結構描述欄位群組、資料型別和結構描述。 關於Marketo,此值是固定的,且一律設為global 。 |
global |
PRIVATE_KEY |
用於向Experience Platform API驗證您的Postman執行個體的認證。 請參閱有關設定開發人員主控台和設定開發人員主控台和 Postman的教學課程,以瞭解如何擷取{PRIVATE_KEY}的說明。 | {PRIVATE_KEY} |
TECHNICAL_ACCOUNT_ID |
用來整合至Adobe I/O的認證。 | D42AEVJZTTJC6LZADUBVPA15@techacct.adobe.com |
IMS |
Identity Management系統(IMS)提供驗證Adobe服務的架構。 關於Marketo,此值是固定的,且一律設為: ims-na1.adobelogin.com 。 |
ims-na1.adobelogin.com |
IMS_ORG |
企業實體,可以擁有或授權產品及服務並允許存取其成員。 如需如何擷取{ORG_ID} 資訊的說明,請參閱設定開發人員主控台和 Postman的教學課程。 |
ABCEH0D9KX6A7WA7ATQE0TE@adobeOrg |
SANDBOX_NAME |
您正在使用的虛擬沙箱分割的名稱。 | prod |
TENANT_ID |
ID,用來確保您建立的資源已正確命名且包含在您的組織內。 | b2bcdpproductiontest |
PLATFORM_URL |
您對其進行API呼叫的URL端點。 此值是固定的,且一律設為: http://platform.adobe.io/ 。 |
http://platform.adobe.io/ |
munchkinId |
您的Marketo帳戶的唯一識別碼。 如需如何擷取munchkinId 的詳細資訊,請參閱驗證您的 Marketo 執行個體的教學課程。 |
123-ABC-456 |
sfdc_org_id |
您的Salesforce帳戶的組織識別碼。 請參閱下列Salesforce 指南,以取得您Salesforce組織ID的詳細資訊。 | 00D4W000000FgYJUA0 |
has_abm |
表示您是否訂閱Marketo Account-Based Marketing的布林值。 | false |
has_msi |
表示您是否訂閱Marketo Sales Insight的布林值。 | false |
執行指令碼
設定好Postman集合和環境後,您現在可以透過Postman介面執行指令碼。
在Postman介面中,選取自動產生器公用程式的根資料夾,然後從頂端標題選取 Run。
Runner介面出現。 從這裡,確定已選取所有核取方塊,然後選取 Run Namespaces and Schemas Autogeneration Utility。
成功的請求會根據測試版規格建立B2B名稱空間和結構描述。
在Amazon Web Services上設定Experience Platform的Salesforce來源 aws
請依照下列步驟,瞭解如何在Amazon Web Services (AWS)上為Experience Platform設定Salesforce帳戶。
先決條件
若要將您的Salesforce帳戶連線至AWS地區的Experience Platform,您必須具備下列條件:
- 具有API存取許可權的Salesforce帳戶。
- Salesforce Connected App可供您用來啟用JWT_BEARER OAuth流程。
- Salesforce中存取資料的必要許可權。
AWS上連線的IP位址允許清單
您必須先將地區特定的IP位址新增至允許清單,才能將您的來源連線到AWS上的Experience Platform。 如需詳細資訊,請參閱允許清單IP位址以連線至AWS上的Experience Platform的指南。
建立Salesforce Connected App
首先,使用以下專案來建立PEM檔案的憑證/金鑰組。
openssl req -newkey rsa:4096 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
- 在Salesforce儀表板中,選取設定(
- 導覽至App Manager,然後選取 New Connection App。
- 為您的應用程式命名,並允許自動填寫其餘欄位。
- 為Enable OAuth Settings啟用此方塊。
- 設定回呼URL。 由於這不會用於JWT,因此您可以使用
https://localhost
。 - 為Use Digital Signatures啟用此方塊。
- 上傳先前建立的cert.pem檔案。
新增必要許可權
新增下列許可權:
- 透過API (API)管理使用者資料
- 存取自訂許可權(custom_permissions)
- 存取身分URL服務(識別碼、設定檔、電子郵件、地址、電話)
- 存取唯一識別碼(openid)
- 隨時執行請求(refresh_token、offline_access)
在新增您的許可權後,請確定您已啟用 Issue JSON Web Token (JWT)-based access tokens for named user 的方塊。
接著,選取 Save、Continue,然後選取 Manage Customer Details。 使用消費者詳細資訊面板來擷取下列內容:
- 消費者金鑰:您稍後在向Experience Platform驗證Salesforce帳戶時,會使用此消費者金鑰作為使用者端ID。
- 消費者機密:您稍後在向Experience Platform驗證Salesforce帳戶時,會使用此消費者機密作為使用者端ID。
授權您的Salesforce使用者使用連線應用程式
請依照下列步驟,取得使用連線應用程式的授權:
- 瀏覽至 Manage Connected Apps。
- 選擇「Edit」。
- 將 Permitted Users 設定為 Admin approved users are pre-authorized,然後選取 Save。
- 導覽至 Settings> Manage Users >Profiles。
- 編輯與使用者相關聯的設定檔。
- 導覽至 Connected App Access,然後選取您在先前步驟中建立的應用程式。
產生JWT持有人權杖
請依照下列步驟產生您的JWT持有人權杖。
將索引鍵配對轉換為pkcs12
若要產生JWT持有人權杖,您必須先使用以下命令將您的憑證/金鑰組轉換為pkcs12格式。 在此步驟中,您還必須在系統提示時 設定匯出密碼。
openssl pkcs12 -export -in cert.pem -inkey key.pem -name jwtcert >jwtcert.p12
根據pkcs12建立Java金鑰存放區
接下來,使用以下命令,根據您剛產生的pkcs12建立Java金鑰儲存區。 在此步驟中,當出現提示時,您也必須設定 目的地金鑰存放區密碼。 此外,您必須提供先前的匯出密碼作為來源金鑰存放區密碼。
keytool -importkeystore -srckeystore jwtcert.p12 -destkeystore keystore.jks -srcstoretype pkcs12 -alias jwtcert
確認您的keystroke.jks包含jwtcert別名
接下來,使用下列命令確認您的keystroke.jks
包含jwtcert
別名。 在此步驟中,系統會提示您提供上一步驟中產生的目的地金鑰存放區密碼。
keytool -keystore keystore.jks -list
產生已簽署的權杖
最後,使用下列java類別JWTExample產生您的簽署權杖。
package org.example;
import org.apache.commons.codec.binary.Base64;
import java.io.*;
import java.security.*;
import java.text.MessageFormat;
public class Main {
public static void main(String[] args) {
String header = "{\"alg\":\"RS256\"}";
String claimTemplate = "'{'\"iss\": \"{0}\", \"sub\": \"{1}\", \"aud\": \"{2}\", \"exp\": \"{3}\"'}'";
try {
StringBuffer token = new StringBuffer();
//Encode the JWT Header and add it to our string to sign
token.append(Base64.encodeBase64URLSafeString(header.getBytes("UTF-8")));
//Separate with a period
token.append(".");
//Create the JWT Claims Object
String[] claimArray = new String[5];
claimArray[0] = "{CLIENT_ID}";
claimArray[1] = "{AUTHORIZED_SALESFORCE_USERNAME}";
claimArray[2] = "{SALESFORCE_LOGIN_URL}";
claimArray[3] = Long.toString((System.currentTimeMillis() / 1000) + 2629746*4);
MessageFormat claims;
claims = new MessageFormat(claimTemplate);
String payload = claims.format(claimArray);
//Add the encoded claims object
token.append(Base64.encodeBase64URLSafeString(payload.getBytes("UTF-8")));
//Load the private key from a keystore
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(new FileInputStream("path/to/keystore"), "keystorepassword".toCharArray());
PrivateKey privateKey = (PrivateKey) keystore.getKey("jwtcert", "privatekeypassword".toCharArray());
//Sign the JWT Header + "." + JWT Claims Object
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
signature.update(token.toString().getBytes("UTF-8"));
String signedPayload = Base64.encodeBase64URLSafeString(signature.sign());
//Separate with a period
token.append(".");
//Add the encoded signature
token.append(signedPayload);
System.out.println(token.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
claimArray[0]
claimArray[0]
。claimArray[1]
claimArray[1]
。claimArray[2]
claimArray[2]
。claimArray[3]
claimArray[3]
。 例如,3660624000000
是12-31-2085。/path/to/keystore
/path/to/keystore
取代為您keystore.jks的正確路徑keystorepassword
keystorepassword
取代為您的目的地金鑰存放區密碼。privatekeypassword
privatekeypassword
。後續步驟
完成Salesforce帳戶的先決條件設定後,您就可以繼續將您的Salesforce帳戶連線至Experience Platform並內嵌您的CRM資料。 如需詳細資訊,請閱讀以下檔案:
使用API連線Salesforce至Experience Platform
以下檔案提供如何使用API或使用者介面將Salesforce連線至Experience Platform的資訊: