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 or Google APIs."],["The library offers a `MakeAccessTokenGenerator` function that uses Application Default Credentials to create an `AccessTokenGenerator` object."],["The `AccessTokenGenerator` class is used to generate access tokens through its `GetToken()` method."],["The page contains a list of available library versions, including the latest release candidate `2.37.0-rc` and other stable releases starting from `2.36.0` down to `2.16.0`, with the current version being `2.21.0`."],["Users are provided with additional documentation, such as \"Error Handling\" and \"Authentication methods at Google\", for a deeper understanding of the library and its usage."]]],[]]