google-service-account
Make authenticated requests using a Google service account.
This maintains an active Google service account token, allowing you to make server-to-server requests. It will automatically re-fetch a new token if a previous one expires.
To make a valid connection, you just attach an Authorization
property to your outgoing request's headers
object. This module returns that object.
Install
$ npm install --save google-service-account
Use
error handling omitted
var request = var authorize = keyFile: "path/to/keyfile.json"
Each time you invoke authorize()
, a new token may be fetched if necessary. Be sure to call it each time you make an outgoing request.
If the example above looked a little verbose for you, you may also use the authorize
function for its extending functionality:
If even that gets tiresome, you can always write up a quick helper for your app:
{ }// ...later...
API
var authorize = require("google-service-account")(options)
options
One of the following is required:
options.credentials
- Type:
Object
The contents of a JSON key file downloaded from the Google Developers Console.
options.keyFile
- Type:
String
Path to a JSON key file downloaded from the Google Developers Console.
options.scopes
- Type:
Array
The scopes your request requires.
authorize([options,] callback)
- Type:
Function
Invoke this method every time you need a valid token. It will handle requesting a new token if necessary, and will return it to your callback as part of an HTTP request headers object:
{
headers: {
Authorization: "..token.."
}
}
options
- (optional)
- Type:
Object
The object you pass in here will be extended with the token object in the format above.
callback
- Type:
Function
The callback function receives a HTTP request headers
object, containing a valid token.
authorize.getCredentials()
Invoke this method to get the credentials object, containing the client_email, client_id, etc.
authorize.getToken()
Invoke this method to get only the value of a token.