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, useful for accessing Cloud Run services or Google APIs without a dedicated client library in `google-cloud-cpp`."],["The library's primary function is creating OAuth2 access tokens, and it utilizes Application Default Credentials for initialization as seen in the quickstart example provided."],["The latest release candidate is version 2.37.0-rc, and the documentation lists previous versions from 2.36.0 down to 2.16.0."],["The `oauth2::AccessTokenGenerator` class and `oauth2::MakeAccessTokenGenerator()` function are the main interfaces of this library."],["Additional information about the library, including error handling and authentication methods at Google, can be found through external links provided in the documentation."]]],[]]