Apigee Edge 문서입니다.
Apigee X 문서로 이동 정보
버전: 1.0.5
Salesforce 계정의 데이터에 액세스합니다. 데이터를 삽입, 업데이트, 검색, 쿼리합니다.
이 콘텐츠는 이 확장 프로그램을 구성하고 사용하는 방법을 참조합니다.
기본 요건
이 콘텐츠는 이 확장 프로그램을 구성하고 사용하는 방법을 참조합니다. ExtensionCallout 정책을 사용하여 API 프록시에서 확장 프로그램을 사용하려면 먼저 다음을 실행해야 합니다.
RSA x509 비공개 키/인증 쌍을 만듭니다.
확장 프로그램을 구성할 때 비공개 키 (.key)를 사용자 인증 정보로 사용합니다. 확장 프로그램에 Salesforce 액세스 권한을 부여하는 연결된 앱을 만들 때 인증서 (.crt) 파일을 사용합니다.
openssl req -x509 -sha256 -nodes -days 36500 -newkey rsa:2048 -keyout salesforce.key -out salesforce.crt
-
Salesforce 연결된 앱은 Salesforce 확장 프로그램에 대한 액세스 권한을 제공합니다. 앱 설정에 관한 안내는 아래를 참고하세요.
연결된 앱의 소비자 키를 가져옵니다. 확장 프로그램은 앱에 인증할 때 이를 사용합니다.
- Salesforce 설정의 왼쪽 탐색 메뉴에서 앱 > 앱 관리자로 이동합니다.
- 목록에서 내가 만든 연결된 앱을 찾습니다.
- 애플리케이션 행의 오른쪽에 있는 드롭다운에서 보기를 클릭합니다.
- API (OAuth 설정 사용 설정)에서 소비자 키를 찾아 확장 프로그램을 구성할 때 사용할 수 있도록 안전한 장소에 복사합니다.
확장 프로그램에서 액세스할 수 있도록 연결된 앱 설정
Salesforce 확장 프로그램이 Salesforce에 액세스하려면 확장 프로그램이 Salesforce와 연결할 수 있는 Salesforce 연결 앱을 만들어야 합니다.
Salesforce에서 연결된 앱은 외부 애플리케이션이 API를 통해 Salesforce에 연결할 수 있는 방법을 제공합니다.
연결된 앱 설정
- Salesforce에 로그인합니다.
- 오른쪽 위에서 톱니바퀴 아이콘을 클릭한 후 설정을 클릭합니다.
- 왼쪽 탐색에서 앱 > 앱 관리자를 확장합니다.
- 앱 관리자 페이지에서 새로 연결된 앱을 클릭합니다.
- 기본 정보에서 필수 입력란을 작성합니다. 이 값은 회계용이며 확장 프로그램에서 사용하지 않습니다.
- API(OAuth 설정 사용 설정)에서 OAuth 설정 사용 설정 체크박스를 선택합니다.
- 확장 프로그램에 사용되지 않지만 콜백 URL을 입력합니다.
http://localhost/
또는 다른 자리표시자 호스트를 사용할 수 있습니다. - 디지털 서명 사용 체크박스를 선택합니다.
- 디지털 서명 사용에서 파일 선택을 클릭하여 이전에 생성한
salesforce.crt
를 찾아서 업로드합니다. - 선택한 OAuth 범위 섹션에서 선택한 OAuth 범위 아래에 표시되도록 다음을 추가합니다.
- 데이터 액세스 및 관리(api)
- 사용자를 대신하여 언제든지 요청 수행(refresh_token, offline_access)
- 저장을 클릭합니다. 오류가 있으면
salesforce.crt
파일을 다시 생성하고 업로드해야 할 수 있습니다. - 결과 앱 페이지에서 관리를 클릭합니다.
- 방금 만든 앱의 앱 관리자 페이지에서 정책 수정을 클릭합니다.
- OAuth 정책에서 허용되는 사용자 드롭다운을 클릭한 후 관리자 승인 사용자가 사전 승인됨을 클릭합니다.
- 저장을 클릭합니다.
- 앱 페이지의 프로필에서 프로필 관리를 클릭합니다.
애플리케이션 프로필 할당 페이지에서 이 애플리케이션을 사용할 수 있는 사용자 프로필의 체크박스를 선택합니다.
확장 프로그램을 구성할 때 사용할 사용자 이름의 사용자에 해당하는 프로필을 선택해야 합니다. 또한 최소한 시스템 관리자 사용자가 이 애플리케이션에 액세스할 수 있어야 합니다.
Salesforce에서 사용자의 프로필 설정을 확인할 수 있습니다. 설정 영역에서 사용자 > 사용자를 펼치고, 확장 프로그램이 나타낼 사용자를 찾은 후 프로필 열에서 해당 프로필을 찾습니다.
저장을 클릭합니다.
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의 승인을 받습니다. | 없음 | 예. |