Salesforce

IMPORTANT
您現在可以在Amazon Web Services (AWS)上執行Adobe Experience Platform時使用Salesforce來源。 在AWS上執行的Experience Platform目前可供有限數量的客戶使用。 若要深入瞭解支援的Experience Platform基礎結構,請參閱Experience Platform多雲端總覽

Adobe Experience Platform可讓您從外部來源擷取資料,同時使用Platform服務來建構、加標籤及增強傳入資料。 您可以從多種來源(例如Adobe應用程式、雲端儲存、資料庫和許多其他來源)內嵌資料。

Experience Platform支援從協力廠商CRM系統擷取資料。 CRM提供者的支援包括Salesforce。

設定您在Azure上Experience Platform的Salesforce來源 azure

請依照下列步驟,瞭解如何設定Salesforce帳戶以在Azure上Experience Platform。

IP位址允許清單

使用來源聯結器之前,必須將IP位址清單新增至允許清單。 未能將您區域特定的IP位址新增到允許清單可能會導致使用來源時的錯誤或效能不佳。 如需詳細資訊,請參閱IP位址允許清單頁面。

從Salesforce到XDM的欄位對應

若要在Salesforce和Platform之間建立來源連線,Salesforce來源資料欄位必須先對應到適當的目標XDM欄位,才能擷取到Platform。

請參閱下列內容,以取得有關Salesforce資料集與Platform之間的欄位對應規則的詳細資訊:

設定Salesforce名稱空間和結構描述自動產生公用程式

若要使用Salesforce來源做為B2B-CDP的一部分,您必須先設定Postman公用程式來自動產生Salesforce名稱空間和結構描述。 下列檔案提供有關設定Postman公用程式的額外資訊:

透過平台開發人員主控台和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 PlatformAPI的教學課程。 {CLIENT_SECRET}
JWT_TOKEN JSON Web權杖(JWT)是用於產生{ACCESS_TOKEN}的驗證認證。 如需如何產生{JWT_TOKEN}的相關資訊,請參閱驗證及存取Experience PlatformAPI的教學課程。 {JWT_TOKEN}
API_KEY 用於驗證對Experience Platform API的呼叫的唯一識別碼。 如需如何擷取{API_KEY}的詳細資訊,請參閱驗證及存取Experience PlatformAPI的教學課程。 c8d9a2f5c1e03789bd22e8efdd1bdc1b
ACCESS_TOKEN 完成對Experience Platform API的呼叫所需的授權權杖。 如需如何擷取{ACCESS_TOKEN}的詳細資訊,請參閱驗證及存取Experience PlatformAPI的教學課程。 Bearer {ACCESS_TOKEN}
META_SCOPE 關於Marketo,此值是固定的,並且一律設定為: ent_dataservices_sdk ent_dataservices_sdk
CONTAINER_ID global容器儲存所有標準Adobe和Experience Platform合作夥伴提供的類別、結構描述欄位群組、資料型別和結構描述。 關於Marketo,此值是固定的,且一律設為global global
PRIVATE_KEY 用來驗證您的Postman執行個體以Experience PlatformAPI的認證。 請參閱有關設定開發人員主控台和設定開發人員主控台和 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

run-generator

成功的請求會根據測試版規格建立B2B名稱空間和結構描述。

設定您在Amazon Web Services上Experience Platform的Salesforce來源 aws

AVAILABILITY
本節適用於在Amazon Web Services (AWS)上執行的Experience Platform實作。 在AWS上執行的Experience Platform目前可供有限數量的客戶使用。 若要深入瞭解支援的Experience Platform基礎結構,請參閱Experience Platform多雲端總覽

請依照下列步驟瞭解如何設定您的Salesforce帳戶以在Amazon Web Services (AWS)上Experience Platform。

先決條件

若要將您的Salesforce帳戶連線至AWS地區的Experience Platform,您必須具備下列條件:

  • 具有API存取許可權的Salesforce帳戶。
  • Salesforce Connected App可供您用來啟用JWT_BEARER OAuth流程。
  • Salesforce中存取資料的必要許可權。

您也必須新增下列IP位址至您的允許清單,才能將您的Salesforce帳戶連線至Amazon Web Services (AWS)上的Experience Platform:

  • 34.193.63.59
  • 44.217.93.240
  • 44.194.79.229

建立Salesforce Connected App

首先,使用以下專案來建立PEM檔案的憑證/金鑰組。

openssl req -newkey rsa:4096 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
  1. 在Salesforce儀表板中,選取設定( 設定圖示。 ),然後選取​ Setup
  2. 導覽至App Manager,然後選取​ New Connection App
  3. 為您的應用程式命名,並允許自動填寫其餘欄位。
  4. 為Enable OAuth Settings啟用此方塊。
  5. 設定回呼URL。 由於這不會用於JWT,因此您可以使用https://localhost
  6. 為Use Digital Signatures啟用此方塊。
  7. 上傳先前建立的cert.pem檔案。

新增必要許可權

新增下列許可權:

  1. 透過API (API)管理使用者資料
  2. 存取自訂許可權(custom_permissions)
  3. 存取身分URL服務(識別碼、設定檔、電子郵件、地址、電話)
  4. 存取唯一識別碼(openid)
  5. 隨時執行請求(refresh_token、offline_access)

在新增您的許可權後,請確定您已啟用​ Issue JSON Web Token (JWT)-based access tokens for named user ​的方塊。

接著,選取​ SaveContinue,然後選取​ Manage Customer Details。 使用消費者詳細資訊面板來擷取下列內容:

  • 消費者金鑰:您稍後會在驗證Experience Platform的Salesforce帳戶時,使用此消費者金鑰作為使用者端ID。
  • 使用者密碼:您稍後會在驗證Experience Platform的Salesforce帳戶時,使用此使用者密碼作為使用者端ID。

授權您的Salesforce使用者使用連線應用程式

請依照下列步驟,取得使用連線應用程式的授權:

  1. 瀏覽至​ Manage Connected Apps
  2. 選擇「Edit」。
  3. 將​ Permitted Users ​設定為​ Admin approved users are pre-authorized,然後選取​ Save
  4. 導覽至​ Settings> Manage Users >Profiles
  5. 編輯與使用者相關聯的設定檔。
  6. 導覽至​ 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]
以針對應用程式授權的Salesforce使用者名稱更新claimArray[1]
claimArray[2]
以您的Salesforce登入URL更新claimArray[2]
claimArray[3]
以自epoch時間以來的毫秒格式來更新到期日期的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至平台

以下檔案提供如何使用API或使用者介面將Salesforce連線到Platform的資訊:

使用UI連線Salesforce至平台

recommendation-more-help
337b99bb-92fb-42ae-b6b7-c7042161d089