Sample code for 30+ languages & platforms
Dart

Test Salesforce OAuth2 Access Token

See more Salesforce Examples

Demonstrates how to make a simple Salesforce REST API call to test a previously obtained access token.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example does the following:

  // curl -X GET https://yourInstance.salesforce.com/services/oauth2/userinfo \
  //      -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

  final http = CkHttp();

  // Use the following online tool to generate HTTP code from a CURL command
  // Convert a cURL Command to HTTP Source Code

  // This example assumes the OAuth2 access token was previously fetched 
  // and saved to a file.  See Get SalesForce OAuth2 Access Token via Authorization Flow

  final json = CkJsonObject();
  try {
    json.loadFile('qa_data/tokens/_salesforce.json');
  } on ChilkatException {
    print('Failed to load OAuth2 access token.');
    return;
  }

  // Here's an example of the JSON:

  // {
  //   "access_token": "00D41000....uLZBpT6",
  //   "refresh_token": "5Aep....25xdGgkrV",
  //   "signature": "cjTbSc5DvcKpaMoRTzuQTJLb1tcMw8LEO01flq4aMD4=",
  //   "scope": "refresh_token id",
  //   "instance_url": "https://d41000000f8a0eak-dev-ed.my.salesforce.com",
  //   "id": "https://login.salesforce.com/id/00D41000000F8A0EAK/005410000....xAAE",
  //   "token_type": "Bearer",
  //   "issued_at": "1738348388166"
  // }

  // Adds the "Authorization: Bearer YOUR_ACCESS_TOKEN" header.
  http.authToken = json.stringOf('access_token');

  // We want to build the following URL:  https://<instance_id>.salesforce.com/services/oauth2/userinfo
  final sbUrl = CkStringBuilder();
  sbUrl.append(json.stringOf('instance_url'));
  sbUrl.append('/services/oauth2/userinfo');

  final sbResponseBody = CkStringBuilder();
  try {
    http.quickGetSb(sbUrl.getAsString(), sbResponseBody);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('Response status code = ${http.lastStatus}');

  final jsonResponse = CkJsonObject();
  jsonResponse.loadSb(sbResponseBody);
  jsonResponse.emitCompact = false;
  print(jsonResponse.emit());

  // The expected JSON response is something like this:

  // {
  //   "sub": "005xxxxxxxxxxxx",
  //   "name": "John Doe",
  //   "preferred_username": "johndoe@example.com",
  //   "email": "johndoe@example.com",
  //   "profile": "https://na85.salesforce.com/005xxxxxxxxxxxx"
  // ...
  // ...
  // }
}