• Sam Shrestha
  • NEWBIE
  • 0 Points
  • Member since 2017

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 1
    Replies

Our partner company (can be an important distinction since I am not their developer?) has created a sandbox for us and I would like to import anywhere from 50K to 2 million contact records to our system.

SOAP calls have been timing out and we want to move away from it. My understanding is that Bulk API (based on REST) might be the best route. This is not only for the initial load but for regularly sheduled future loads as well. Does this make sense? So how do I enable Bulk API, REST API on this sandbox? 

Hi I am building Salesforce app which authenticate users using oAuth2. When user complete authentication I am receiving access_token. When I use this token with REST API it works perfectly fine. When I try to use it with BULK API I get this error:
 
"{"exceptionCode":"InvalidSessionId","exceptionMessage":"Invalid session id"}"

The token must be valid because it works with REST API calls.
The user I am authenticating has "System administrator" profile selected and user license is "Salesforce". User has "Development Edition" so the API is enabled by default.
This is the code for creating BULK API job:
 
$job = createJob();

	var_dump($job);

	function createJob()
	{
		$accessToken = "mytokengoeshere";

		try {

			// Initializate Guzzle client
			$client   = new Client();

			// Request URI
			$request = $client->post("https://eu6.salesforce.com/services/async/37.0/job");

			## SET HEADERS

			// Add authentication token to the header
			$request->addHeader('X-SFDC-Session', $accessToken);
			// Set content type to JSON
			$request->addHeader('content-type', 'application/json');
			
			// Query data
			$data = json_encode(
						array("operation" 		=> "query",
						  	  "object" 			=> "Account",
						  	  "concurrencyMode" => "Parallel",
						      "contentType" 	=> "JSON")
					);			

			// Set body for Guzzle request
			$request->setBody($data);

			// Send the request and get the response
			$response = $request->send();

			// Convert response to JSON format
			$jsonResponse = $response->json();

			return $jsonResponse;

		} catch (ClientErrorResponseException $exception) {

			// Return exception message
			return $exception->getResponse()->getBody(true);

		}	
	}


This is the error message I get:

 
"{"exceptionCode":"InvalidSessionId","exceptionMessage":"Invalid session id"}"

The code is in PHP and it works perfectly fine when providing token for different salesforce developer account so I am assuming this is a problem with account setup on Salesforce.
I am attaching screenshots of my oauth app settings:


User-added image


User-added image