GOOGLE-ADWORDS-PERL-CLIENT

 view release on metacpan or  search on metacpan

lib/Google/Ads/Common/OAuth2ServiceAccountsHandler.pm  view on Meta::CPAN

    \"iss\":\"${iss}\",
    \"prn\":\"${delegated_email_address}\",
    \"scope\":\"${scope}\",
    \"aud\":\"" . OAUTH2_BASE_URL . "/token\",
    \"exp\":${exp},
    \"iat\":${iat}
  }";

  my $encoded_header = __encode_base64_url($header);
  my $encoded_claims = __encode_base64_url($claims);
  my $key = $self->get___crypt_module()->new_private_key($file) || return 0;
  $key->use_pkcs1_padding();
  $key->use_sha256_hash();

  my $signature = $key->sign("${encoded_header}.${encoded_claims}");
  my $encoded_signature =  __encode_base64_url($signature);
  my $assertion = "${encoded_header}.${encoded_claims}.${encoded_signature}";
  my $body = "grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer" .
      "&assertion=" . $assertion;
  push my @headers, "Content-Type" => "application/x-www-form-urlencoded";
  my $request = HTTP::Request->new("POST", OAUTH2_BASE_URL . "/token",

t/019_OAuth2ServiceAccountsHandler.t  view on Meta::CPAN

  $response->content("{\n\"scope\":\"https://adwords.google.com/api/" .
                     "adwords/\"\n\"expires_in\":" . $exp . "\n}");
  return $response;
});

ok($handler->is_auth_enabled());
is($handler->get_access_token(), "access-token");
ok($handler->get_access_token_expires());

# Test access token generation.
$crypt_module_mock->mock(new_private_key => sub {
  my ($self, $file) = @_;

  my $key = Test::MockObject->new();
  $key->mock(use_pkcs1_padding => sub { 1 });
  $key->mock(use_sha256_hash => sub { 1 });
  $key->mock(sign => sub {
    return "signed-claims"
  });

  return $key;



( run in 0.222 second using v1.01-cache-2.11-cpan-a5abf4f5562 )