Sample code for 30+ languages & platforms
Java

Get Google API Access Token using P12 Service Account Key

See more Google APIs Examples

Demonstrates how to get a Google API access token using a P12 service account key.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.AuthGoogle;
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Pfx;
import com.chilkatsoft.chilkat2.Socket;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        // --------------------------------------------------------------------------------
        // For a step-by-step guide for setting up your Google Workspace service account,
        // see Setup Google Workspace Account for Sending SMTP GMail from a Service Account
        // --------------------------------------------------------------------------------

        // First load the PKCS12 (.p12 / .pfx) into a PFX object.
        Pfx pfx = new Pfx();
        try {
            pfx.loadPfxFile("qa_data/pfx/chilkat25-cbd7b42afbd8.p12", "notasecret");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        AuthGoogle gAuth = new AuthGoogle();
        gAuth.setP12(pfx);

        // The ISS is your service account email address ending in gserviceaccount.com.
        String iss = "chilkatsvc@chilkat25.iam.gserviceaccount.com";

        // The scope is always the following string:
        String scope = "https://mail.google.com/";

        // The sub is your company email address
        String oauth_sub = "info@chilkat.xyz";

        // The access token is valid for this number of seconds.
        int numSec = 3600;

        gAuth.setEmailAddress(iss);
        gAuth.setScope(scope);
        gAuth.setExpireNumSeconds(numSec);
        gAuth.setSubEmailAddress(oauth_sub);

        // Connect to www.googleapis.com
        Socket tlsSock = new Socket();
        try {
            tlsSock.connect("www.googleapis.com", 443, true, 5000);

            // Send the request to obtain the access token.
            gAuth.obtainAccessToken(tlsSock);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // Examine the access token:
        System.out.println("Access Token: " + gAuth.getAccessToken());
    }
}