salesforce To Salesforce Integration Through Apex

    public class salesforceToSalesforceIntegrationThroughApex {

        public void integrateS2S()
        {
            final String LOGIN_DOMAIN = 'login'; //other options: test, prerellogin.pre
            final String USERNAME  = 'user name';
            final String PASSWORD  = 'user password';
        
            String SERVER_URL;
            String SESSION_ID;

            // How to generate Consumer Key and Consumer Secret Code? 

            //Goto Setup > Build > Apps>Connected Apps>New> Enter required data alog with API (Enable OAuth Settings)
            String Consumer_Key = '3MVG9Y6d_Btp4xp7HI0OKNu0NNZ7CbuDa8ISx.u_E6f4e3Q.4MBRzkD3Mi3lzUCwlC3OgO5g5oT.I7xVYt1aB';
            String Consumer_Secret = '766475509074793020';
            
            HttpRequest request = new HttpRequest();
            request.setEndpoint('https://login.salesforce.com'+'/services/oauth2/token');
            request.setMethod('POST');
            request.setHeader('Content-Type', 'application/x-www-form-urlencoded');
            request.setHeader('SOAPAction', '""');
            String reqbody = 'grant_type=password&client_id='+Consumer_Key+'&client_secret='+Consumer_Secret+'&username='+USERNAME+'&password='+PASSWORD;          
            request.setBody(reqbody);
            
            Http hp = new Http();
            HttpResponse response = hp.send(request);
            System.debug('response.getbody()'+response.getStatusCode());
            
            JSONParser parser = JSON.createParser(response.getbody());
            
            OAuth2 objAuthenticationInfo = (OAuth2)JSON.deserialize(response.getbody(), OAuth2.class);         
                if(objAuthenticationInfo.access_token!=null)
                {  
                    SERVER_URL=objAuthenticationInfo.instance_url;
                    SESSION_ID = objAuthenticationInfo.access_token;
                }
            final PageReference theUrl = new PageReference(SERVER_URL + '/services/data/v22.0/query/');
            theUrl.getParameters().put('q','select id,name from Account limit 10');
            request = new HttpRequest();
            request.setEndpoint(theUrl.getUrl());
            request.setMethod('GET');
            request.setHeader('Authorization', 'OAuth ' + SESSION_ID);
            String body = (new Http()).send(request).getBody();
            System.debug('Accounts in JSON format: ' + body);
            JSONParser parser2 = JSON.createParser(body);
                do{
                    parser2.nextToken();
                }while(parser2.hasCurrentToken() && !'records'.equals(parser2.getCurrentName()));
                    parser2.nextToken();
                    final List<Account> accounts = (List<Account>) parser2.readValueAs(List<Account>.class);
                    System.debug('Accounts as native list: ' + accounts);                    
        }

    }

Leave a Reply