Question

I've been running Ruby scripts for weeks now using a Service Account, but today I'm getting an "Invalid Request" when I try to build the client using the following function:

def build_client(user_email)
  client = Google::APIClient.new
  client.authorization = Signet::OAuth2::Client.new(
  :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
  :audience => 'https://accounts.google.com/o/oauth2/token',
  :scope => 'https://www.googleapis.com/auth/calendar',
  :issuer => SERVICE_ACCOUNT_EMAIL,
  :signing_key => Google::APIClient::KeyUtils.load_from_pkcs12(SERVICE_ACCOUNT_PKCS12_FILE_PATH, "notasecret"),
   :person => user_email
  )
  client.authorization.fetch_access_token!    
  return client
end

Is there a lifespan on Service Accounts? I tried creating another Service Account and using that but I get the same result:

Authorization failed.  Server message: (Signet::AuthorizationError)
{
  "error" : "invalid_request"
}

Stumped!

Was it helpful?

Solution

OK. I figured it out. It was all to do with the user_email. I was reading it from a file and forgot to chomp the linefeed off, so it was objecting to a mal-formed email address.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top