Salesforce 확장 프로그램

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

버전: 1.0.3

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

이 콘텐츠는 이 확장 프로그램을 구성하고 사용하기 위한 참조를 제공합니다.

기본 요건

이 콘텐츠는 이 확장 프로그램을 구성하고 사용하기 위한 참조를 제공합니다. Extension콜아웃 정책을 사용하여 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 설정의 왼쪽 탐색 메뉴에서 Apps(앱) > App Manager(앱 관리자)로 이동합니다.
    2. 만든 연결된 앱을 목록에서 찾습니다.
    3. 애플리케이션 행의 오른쪽에 있는 드롭다운에서 보기를 클릭합니다.
    4. API (OAuth 설정 사용)에서 소비자 키를 찾아 확장 프로그램을 구성할 때 사용할 수 있도록 안전한 위치에 값을 복사합니다.

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

Salesforce 확장 프로그램에서 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) 플랫폼입니다. 고객 관계 관리(Customer Relationship Management)를 통해 기업은 고객 정보와 상호작용을 더 효과적으로 관리하여 고객의 니즈를 이해하고 문제를 해결할 수 있습니다. 이 모든 것이 데스크톱이나 기기에서 항상 액세스할 수 있는 단일 플랫폼입니다.

작업

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 유형입니다. 문자열 없음 예.
records JSON 형식의 sObject 레코드 배열입니다. 최대: 1,000자(영문 기준) 배열 없음 예.
allOrNone true: 업데이트의 일부가 실패하면 전체 업데이트가 실패합니다. 불리언 false 번호

응답

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

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
속성 설명 유형 기본 계정 필수
results[*].id 새 레코드에 대해 생성된 sObject ID입니다. 문자열 없음 예.
결과[*].성공 레코드를 삽입한 경우 true입니다. 불리언 없음 예.
결과[*].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 유형입니다. 문자열 없음 예.
records JSON 형식의 sObject 레코드 배열입니다. 업데이트할 각 레코드에는 레코드의 ID 값이 포함되어야 합니다. 최대: 1,000자(영문 기준) 배열 없음 예.
allOrNone true: 업데이트의 일부가 실패하면 전체 업데이트가 실패합니다. 불리언 false 번호

응답

업데이트 결과가 포함된 results 배열

{
  results: [
    { id: '0011U00000LQ76KQAT', success: true, errors: [] },
    { id: '0011U00000LQ76LQAT', success: true, errors: [] }
  ]
}
매개변수 설명 유형 기본 계정 필수
results[*].id 업데이트된 레코드에 대해 생성된 sObject ID입니다. 문자열 없음 예.
결과[*].성공 레코드를 삽입한 경우 true입니다. 불리언 없음 예.
결과[*].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: 요청의 일부가 실패하면 전체 작업이 실패합니다. 불리언 false 번호

응답

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

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

querySOQL

Salesforce SOQL (Object Query Language)을 사용하여 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 쿼리에서 반환된 레코드 수입니다. 정수 없음 예.
records 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 유형입니다. 문자열 없음 예.
제한 반환할 최대 레코드 수입니다. 정수 1,000 번호
오프셋 나열할 레코드의 오프셋입니다. 정수 0 번호

응답

JSON으로 나열된 sObject가 포함된 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입니다. 문자열 없음 예.
결과[*].성공 레코드에 작업이 성공한 경우 true입니다. 불리언 없음 예.
결과[*].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 org에서 사용하는 인스턴스의 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로부터 승인을 받습니다. 없음 예.