Salesforce 확장 프로그램

Apigee Edge 문서입니다.
Apigee X 문서로 이동
정보

버전: 1.0.5

Salesforce 계정의 데이터에 액세스합니다. 데이터를 삽입, 업데이트, 검색, 쿼리합니다.

이 콘텐츠는 이 확장 프로그램을 구성하고 사용하는 방법을 참조합니다.

기본 요건

이 콘텐츠는 이 확장 프로그램을 구성하고 사용하는 방법을 참조합니다. ExtensionCallout 정책을 사용하여 API 프록시에서 확장 프로그램을 사용하려면 먼저 다음을 실행해야 합니다.

  1. RSA x509 비공개 키/인증 쌍을 만듭니다.

    확장 프로그램을 구성할 때 비공개 키 (.key)를 사용자 인증 정보로 사용합니다. 확장 프로그램에 Salesforce 액세스 권한을 부여하는 연결된 앱을 만들 때 인증서 (.crt) 파일을 사용합니다.

    openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:2048 -keyout salesforce.key -out salesforce.crt
    
    
  2. 연결된 앱을 설정합니다.

    Salesforce 연결된 앱은 Salesforce 확장 프로그램에 대한 액세스 권한을 제공합니다. 앱 설정에 관한 안내는 아래를 참고하세요.

  3. 연결된 앱의 소비자 키를 가져옵니다. 확장 프로그램은 앱에 인증할 때 이를 사용합니다.

    1. Salesforce 설정의 왼쪽 탐색 메뉴에서 앱 > 앱 관리자로 이동합니다.
    2. 목록에서 내가 만든 연결된 앱을 찾습니다.
    3. 애플리케이션 행의 오른쪽에 있는 드롭다운에서 보기를 클릭합니다.
    4. API (OAuth 설정 사용 설정)에서 소비자 키를 찾아 확장 프로그램을 구성할 때 사용할 수 있도록 안전한 장소에 복사합니다.

확장 프로그램에서 액세스할 수 있도록 연결된 앱 설정

Salesforce 확장 프로그램이 Salesforce에 액세스하려면 확장 프로그램이 Salesforce와 연결할 수 있는 Salesforce 연결 앱을 만들어야 합니다.

Salesforce에서 연결된 앱은 외부 애플리케이션이 API를 통해 Salesforce에 연결할 수 있는 방법을 제공합니다.

연결된 앱 설정

  1. Salesforce에 로그인합니다.
  2. 오른쪽 위에서 톱니바퀴 아이콘을 클릭한 후 설정을 클릭합니다.
  3. 왼쪽 탐색에서 앱 > 앱 관리자를 확장합니다.
  4. 앱 관리자 페이지에서 새로 연결된 앱을 클릭합니다.
  5. 기본 정보에서 필수 입력란을 작성합니다. 이 값은 회계용이며 확장 프로그램에서 사용하지 않습니다.
  6. API(OAuth 설정 사용 설정)에서 OAuth 설정 사용 설정 체크박스를 선택합니다.
  7. 확장 프로그램에 사용되지 않지만 콜백 URL을 입력합니다. http://localhost/ 또는 다른 자리표시자 호스트를 사용할 수 있습니다.
  8. 디지털 서명 사용 체크박스를 선택합니다.
  9. 디지털 서명 사용에서 파일 선택을 클릭하여 이전에 생성한 salesforce.crt를 찾아서 업로드합니다.
  10. 선택한 OAuth 범위 섹션에서 선택한 OAuth 범위 아래에 표시되도록 다음을 추가합니다.
    • 데이터 액세스 및 관리(api)
    • 사용자를 대신하여 언제든지 요청 수행(refresh_token, offline_access)
  11. 저장을 클릭합니다. 오류가 있으면 salesforce.crt 파일을 다시 생성하고 업로드해야 할 수 있습니다.
  12. 결과 앱 페이지에서 관리를 클릭합니다.
  13. 방금 만든 앱의 앱 관리자 페이지에서 정책 수정을 클릭합니다.
  14. OAuth 정책에서 허용되는 사용자 드롭다운을 클릭한 후 관리자 승인 사용자가 사전 승인됨을 클릭합니다.
  15. 저장을 클릭합니다.
  16. 앱 페이지의 프로필에서 프로필 관리를 클릭합니다.
  17. 애플리케이션 프로필 할당 페이지에서 이 애플리케이션을 사용할 수 있는 사용자 프로필의 체크박스를 선택합니다.

    확장 프로그램을 구성할 때 사용할 사용자 이름의 사용자에 해당하는 프로필을 선택해야 합니다. 또한 최소한 시스템 관리자 사용자가 이 애플리케이션에 액세스할 수 있어야 합니다.

    Salesforce에서 사용자의 프로필 설정을 확인할 수 있습니다. 설정 영역에서 사용자 > 사용자를 펼치고, 확장 프로그램이 나타낼 사용자를 찾은 후 프로필 열에서 해당 프로필을 찾습니다.

  18. 저장을 클릭합니다.

Salesforce 정보

Salesforce는 고객 관계 관리(CRM) 플랫폼입니다. 고객 관계 관리는 기업이 고객 정보 및 상호작용을 더 효과적으로 관리함으로써 고객의 요구를 이해하고 문제를 해결할 수 있게 해줍니다. 이 모든 작업을 모든 데스크톱 또는 기기에서 항상 액세스할 수 있는 단일 플랫폼에서 할 수 있습니다.

작업

insert

레코드를 sObject 유형으로 삽입합니다.

구문

<Action>insert</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "records":[ records-to-insert ],
  "allOrNone": true | false
}]]></Input>

<Action>insert</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "records":[
    { "Name": "MyAccountName" }
  ],
  "allOrNone": true
}]]></Input>

요청 매개변수

매개변수 설명 유형 기본값 필수
sobject 삽입할 레코드의 sObject 유형입니다. 문자열 없음 예.
기록 JSON의 sObject 레코드 배열입니다. 최대: 1,000개 배열 없음 예.
allOrNone true: 업데이트 중 일부가 실패하면 전체 업데이트를 실패시킵니다. 불리언 거짓 아니요.

응답

삽입 작업의 결과가 포함된 results 배열입니다.

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
속성 설명 유형 기본값 필수
results[*].id 새 레코드에 대해 생성된 sObject ID입니다. 문자열 없음 예.
results[*].success 레코드 삽입에 성공한 경우 true 불리언 없음 예.
results[*].errors 실행 중에 포착된 오류 배열(있는 경우) 배열 없음 예.

update

Salesforce 레코드를 업데이트합니다.

구문

<Action>update</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "records": [ records-to-update ],
  "allOrNone": true | false
}]]></Input>

<Action>update</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "records":[
    {
      "id":"0011U00000LQ76KQAT",
      "Name": "MyNewAccountName"
    }
  ],
  "allOrNone": true
}]]></Input>

요청 매개변수

매개변수 설명 유형 기본값 필수
sobject 업데이트할 레코드의 sObject 유형입니다. 문자열 없음 예.
기록 JSON의 sObject 레코드 배열입니다. 업데이트할 각 레코드에는 레코드의 ID 값이 포함되어야 합니다. 최대: 1,000개 배열 없음 예.
allOrNone true: 업데이트 중 일부가 실패하면 전체 업데이트를 실패시킵니다. 불리언 거짓 아니요.

응답

업데이트 결과가 포함된 results 배열입니다.

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
매개변수 설명 유형 기본값 필수
results[*].id 업데이트된 레코드에 대해 생성된 sObject ID입니다. 문자열 없음 예.
results[*].success 레코드 삽입에 성공한 경우 true 불리언 없음 예.
results[*].errors 실행 중에 포착된 오류 배열(있는 경우) 배열 없음 예.

retrieve

ID별로 레코드를 sObject로 검색합니다. sObject 유형의 모든 필드를 반환합니다.

구문

<Action>retrieve</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "ids":[ IDs-of-records-to-retrieve ]
}]]></Input>

<Action>retrieve</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "ids":["0011U00000LQ76KQAT"]
}]]></Input>

요청 매개변수

매개변수 설명 유형 기본값 필수
sobject 검색할 레코드의 sObject 유형입니다. 문자열 없음 예.
ids 가져올 sObject ID 레코드 배열입니다. 최대: 1,000개 배열 없음 예.
allOrNone true: 요청의 일부가 실패하면 전체 작업을 실패시킵니다. 불리언 거짓 아니요.

응답

JSON으로 표현된 sObject의 records 배열입니다. 속성 값이 null이더라도 객체의 모든 속성이 JSON에 포함됩니다.

{
  records: [
    { sobject-json },
    { sobject-json }
  ]
}

querySOQL

Salesforce 객체 쿼리 언어 (SOQL)를 사용하여 Salesforce.com에 쿼리합니다.

구문

<Action>querySOQL</Action>
<Input><![CDATA[{
  "soql": soql-query-statement
}]]></Input>

<Action>querySOQL</Action>
<Input><![CDATA[{
  "soql": "SELECT Id, Name FROM Account"
}]]></Input>

요청 매개변수

매개변수 설명 유형 기본값 필수
soql 쿼리할 SOQL 문입니다. 문자열 없음 예.

응답

쿼리 결과입니다.

{
  totalSize: 2,
  records: [
    {
      attributes: { attributes-of-record },
      Id: '0011U00000LQ76KQAT',
      Name: 'AccountName1'
    },
    {
      attributes: { attributes-of-record },
      Id: '0011U00000LQ76LQAT',
      Name: 'AccountName2'
    }
  ],
  done: true
}
매개변수 설명 유형 기본값 필수
totalSize 쿼리에서 반환된 레코드 수입니다. 정수 없음 예.
기록 JSON의 sObject로 반환된 레코드 배열입니다. 최대: 1,000개 배열 없음 예.
완료 쿼리 작업이 완료된 경우 true입니다. 불리언 없음 예.

list

Salesforce.com 레코드를 표시합니다. 지정된 sObject 유형의 모든 필드를 반환합니다.

구문

<Action>list</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "limit": max-number-of-records,
  "offset": record-index-at-which-to-begin-response-set
}]]></Input>

<Action>list</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "limit": 1000,
  "offset": 0
}]]></Input>

요청 매개변수

매개변수 설명 유형 기본값 필수
sobject 나열할 레코드의 sObject 유형입니다. 문자열 없음 예.
제한 반환할 최대 레코드 수입니다. 정수 1000 아니요.
오프셋 목록에 표시할 레코드의 오프셋입니다. 정수 0 아니요.

응답

나열된 sObject를 JSON으로 포함하는 records 배열입니다.

{
  records: [
    { sobject-json },
    { sobject-json }
  ]
}

del

지정된 ID가 있는 레코드를 삭제합니다.

구문

<Action>del</Action>
<Input><![CDATA[{
  "sobject": records-sObject-type,
  "ids":[ IDs-of-records-to-retrieve ]
}]]></Input>

<Action>del</Action>
<Input><![CDATA[{
  "sobject": "Account",
  "ids":["0011U00000LQ76KQAT"]
}]]></Input>

요청 매개변수

매개변수 설명 유형 기본값 필수
sobject 삭제할 레코드의 sObject 유형입니다. 문자열 없음 예.
ids 삭제할 레코드의 sObject ID 배열입니다. 최대: 1,000개 배열 없음 예.

응답

작업의 결과가 포함된 results 배열입니다.

{
  results:[
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
속성 설명 유형 기본값 필수
results[*].id 지정된 레코드의 sObject ID입니다. 문자열 없음 예.
results[*].success 레코드에 대한 작업이 성공한 경우 true입니다. 불리언 없음 예.
results[*].errors 실행 중에 포착된 오류 배열(있는 경우) 배열 없음 예.

getAccessToken

Salesforce.com API 액세스 토큰을 가져옵니다. REST API를 쿼리하는 데 사용할 수 있습니다.

구문

<Action>getAccessToken</Action>
<Input><![CDATA[{}]]></Input>

요청 매개변수

없음

응답

JSON 형식의 액세스 토큰입니다.

{
  "accessToken":"00D1U0000014m3hqswvoM22I5GTw9EJrztlZ8eSSka88Q",
  "scope":"api",
  "instanceUrl": "https://na85.salesforce.com",
  "id": "https://login.salesforce.com/id/00D1U0004564mutUAA/0051U43214qecVQAQ",
  "tokenType": "Bearer"
}
속성 설명 유형 기본값 필수
accessToken 액세스 토큰 문자열 없음 예.
범위 토큰이 액세스 권한을 제공하는 범위입니다. 문자열 없음 예.
instanceUrl Salesforce 조직에서 사용하는 인스턴스의 URL입니다. 문자열 없음 예.
id 연결된 앱의 ID입니다. 문자열 없음 예.
tokenType 액세스 토큰의 유형입니다. 문자열 베어러(Bearer) 예.

구성 참조

API 프록시에서 사용하도록 이 확장 프로그램을 구성하고 배포할 때 다음을 사용하세요.

일반적인 확장 속성

모든 확장 프로그램에는 다음과 같은 속성이 있습니다.

속성 설명 기본 필수
name 확장 프로그램의 구성에 지정할 이름입니다. 없음 지원됨
packageName Apigee Edge에서 제공하는 확장 프로그램 패키지 이름입니다. 없음 지원됨
version 확장 프로그램을 구성하는 확장 프로그램 패키지의 버전 번호입니다. 없음 지원됨
configuration 추가하는 확장 프로그램 관련 구성 값입니다. 이 확장 프로그램 속성의 속성을 참조하세요. 없음 지원됨

이 확장 프로그램 패키지의 속성

이 확장 프로그램에만 해당하는 다음 구성 속성의 값을 지정합니다.

속성 설명 기본값 필수
승인 서버 URL Salesforce에서 승인을 받을 때 사용할 URL입니다. 일반적으로 https://login.salesforce.com입니다. 없음 예.
연결된 앱 고객 키 개발자가 만든 연결된 앱의 Salesforce에서 제공하는 고객 키입니다. 소비자 키를 검색하는 방법은 기본 요건의 안내를 참고하세요. 없음 예.
사용자 인증 정보 Apigee Edge 콘솔에 입력하면 위 단계에서 생성한 salesforce.key 파일의 콘텐츠가 됩니다. 관리 API를 통해 전송되는 경우 salesforce.key 파일에서 생성된 base64 인코딩 값입니다. 없음 예.
Salesforce 사용자의 사용자 이름 개발자가 만든 연결된 앱과 연결된 사용자 이름입니다. Salesforce 확장 프로그램은 이를 사용하여 Salesforce의 승인을 받습니다. 없음 예.