This library contains helpers to create OAuth2 access tokens. This may be useful when trying to access customer services deployed to Cloud Run, or when using Google APIs that lack a client library in google-cloud-cpp.
Quickstart
The following shows the code that you'll run in the google/cloud/oauth2/quickstart/ directory. This is the typical usage of the library in applications.
#include "google/cloud/oauth2/access_token_generator.h"
#include <iostream>
int main(int argc, char* argv[]) try {
if (argc != 1) {
std::cerr << "Usage: " << argv[0] << "\n";
return 1;
}
// Use Application Default Credentials to initialize an AccessTokenGenerator
// retrieve the access token.
auto credentials = google::cloud::MakeGoogleDefaultCredentials();
auto generator =
google::cloud::oauth2::MakeAccessTokenGenerator(*credentials);
auto token = generator->GetToken();
if (!token) throw std::move(token).status();
// Only print the first few characters to avoid leaking tokens in test logs.
std::cout << "The access token starts with " << token->token.substr(0, 16)
<< "\n";
return 0;
} catch (google::cloud::Status const& status) {
std::cerr << "google::cloud::Status thrown: " << status << "\n";
return 1;
}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-03-05 UTC."],[[["This webpage provides documentation for the OAuth2 Access Token Generation Library, used for creating OAuth2 access tokens to interact with customer services on Cloud Run or Google APIs without a client library."],["The library's latest release candidate is version 2.37.0-rc, with several previous versions available, ranging down to 2.16.0."],["The quickstart guide demonstrates how to use Application Default Credentials to initialize an `AccessTokenGenerator` and retrieve an access token."],["The library's primary interfaces include `oauth2::AccessTokenGenerator` and `oauth2::MakeAccessTokenGenerator()`, which facilitate the token generation process."],["Further information on error handling and Google authentication methods are linked, providing context on how the library manages errors and handles user authentication."]]],[]]