Salesforce

Salesforce REST API를 통해 데이터를 받아오는 방법

GEEEEEEEE

Salesforce REST API는 클라이언트 애플리케이션이

 

 

 

 

Salesforce 데이터에 접근하고 조작할 수 있게 해주는 매우 강력한 도구입니다.

 

 

 

 

이 글에서는 Salesforce REST API를 통해 데이터를 받아오는 방법을 개념 설명과

 

 

 

 

함께 단계별로 자세히 안내하겠습니다.

 

 

 

주요 개념

 

 

Salesforce REST API는 HTTP 메소드를 사용하여 Salesforce 데이터에 접근할 수 있는 인터페이스입니다.

 

 

 

일반적으로 JSON 형식으로 데이터를 주고받으며, Salesforce 데이터를 안전하게 접근하기 위해 OAuth 2.0 인증 방식을 사용합니다.

 

 

 

 

OAuth 2.0 인증 : REST API 호출 전에 Salesforce로부터 액세스 토큰을 받아야 합니다.

 

 

 

REST API 엔드포인트 호출 : 액세스 토큰을 사용하여 필요한 데이터를 가져옵니다.

 

 

 

응답 처리 : 받은 데이터를 처리합니다.

 

 

 

 

 

이제 차례대로 단계별로 알려드리겠습니다.

 

 

 

1단계 : OAuth 2.0 인증

 

 

 

import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

public class SalesforceOAuth {
    public static void main(String[] args) {
        try {
            String authUrl = "https://login.salesforce.com/services/oauth2/token";
            String clientId = "YOUR_CLIENT_ID";
            String clientSecret = "YOUR_CLIENT_SECRET";
            String username = "YOUR_USERNAME";
            String password = "YOUR_PASSWORD";

            URL url = new URL(authUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

            String payload = "grant_type=password"
                    + "&client_id=" + clientId
                    + "&client_secret=" + clientSecret
                    + "&username=" + username
                    + "&password=" + password;

            conn.setDoOutput(true);
            OutputStream os = conn.getOutputStream();
            os.write(payload.getBytes());
            os.flush();
            os.close();

            int responseCode = conn.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                Scanner scanner = new Scanner(conn.getInputStream());
                String responseBody = scanner.useDelimiter("\\A").next();
                scanner.close();
                
                System.out.println("Response: " + responseBody);
                // JSON 파싱하여 액세스 토큰과 인스턴스 URL 추출
            } else {
                System.out.println("POST request not worked");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

 

 

 

위 코드를 통해서 우리는 엑세스 TOKEN과 인스턴스 URL을 얻을 수 있습니다.

 

 

 

이 토큰은 이후에 REST API 호출에 사용됩니다.

 

 

 

2단계 : REST API 엔드포인트 호출

 

 

 

 

액세스 토큰을 사용하여 Salesforce 데이터에 접근합니다.

 

 

 

예를 들어, 계정 데이터를 가져오는 예제입니다.

 

 

 

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

public class SalesforceRestApi {
    public static void main(String[] args) {
        try {
            String accessToken = "YOUR_ACCESS_TOKEN";
            String instanceUrl = "YOUR_INSTANCE_URL";
            String query = "SELECT Id, Name FROM Account LIMIT 10";
            String queryUrl = instanceUrl + "/services/data/v52.0/query?q=" + query;

            URL url = new URL(queryUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setRequestProperty("Authorization", "Bearer " + accessToken);
            conn.setRequestProperty("Content-Type", "application/json");

            int responseCode = conn.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                Scanner scanner = new Scanner(conn.getInputStream());
                String responseBody = scanner.useDelimiter("\\A").next();
                scanner.close();

                System.out.println("Response: " + responseBody);
                // JSON 파싱하여 필요한 데이터 추출
            } else {
                System.out.println("GET request not worked");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 

 

 

 

위 예제에서는 SELECT Id, Name FROM Account LIMIT 10 쿼리를 사용하여 10개의 계정 데이터를 가져옵니다.

 

 

 

가져온 데이터는 JSON 형식으로 반환되며, 각 계정의 ID와 이름을 출력합니다.

 

 

 

3단계 : 응답 처리

 

 

 

응답 받은 데이터를 활용하여 필요한 처리를 수행합니다.

 

 

 

위 예제에서는 가져온 계정 데이터를 출력하는 코드입니다.

 

 

 

이 과정을 통해 Salesforce에서 REST API를 통해 데이터를 받아오는 방법을 이해할 수 있습니다.

 

 

 

추가적으로 Salesforce REST API에 대한 자세한 정보는 Salesforce 개발자 문서를 참고하시길 바랍니다!