/** * Runs the example. */ function UseOAuthExample() { // Set the OAuth consumer key and secret. Anonymous values can be used for // testing, and real values can be obtained by registering your application: // http://code.google.com/apis/accounts/docs/RegistrationForWebAppsAuto.html $oauthInfo = array('oauth_consumer_key' => 'anonymous', 'oauth_consumer_secret' => 'anonymous'); // Create the AdWordsUser and set the OAuth info. $user = new AdWordsUser(); $user->SetOAuthInfo($oauthInfo); $user->LogAll(); // Request a new OAuth token. Web applications should pass in a callback URL // to redirect the user to after authorizing the token. $user->RequestOAuthToken(); // Get the authorization URL for the OAuth token. $authorizationUrl = $user->GetOAuthAuthorizationUrl(); // In a web application you would redirect the user to the authorization URL // and after approving the token they would be redirected back to the // callback URL, with the URL parameter "oauth_verifier" added. For desktop // or server applications, spawn a browser to the URL and then have the user // enter the verification code that is displayed. printf("Log in to your AdWords account and open the following URL: %s\n", $authorizationUrl); print 'After approving the token enter the verification code here: '; $stdin = fopen('php://stdin', 'r'); $verifier = trim(fgets($stdin)); fclose($stdin); // Upgrade the authorized token. $user->UpgradeOAuthToken($verifier); // An upgraded token does not expire and should be stored and reused for // every request to the API. $oauthInfo = $user->GetOAuthInfo(); print "OAuth authorization successful.\n"; print_r($oauthInfo); // Get the number of campaigns in the account. $campaignService = $user->GetService('CampaignService', ADWORDS_VERSION); $selector = new Selector(); $selector->fields = array('Id'); $selector->paging = new Paging(0, 0); $page = $campaignService->get($selector); // Display number of campaigns. printf("Found %d campaigns.\n", $page->totalNumEntries); }
/** * Gets the HTTP headers for the report download request. * @param AdWordsUser $user the AdWordsUser to get credentials from * @param string $url the URL the request will be made to * @param array $options the options for the download * @return array and array of strings, which are header names and values */ private static function GetHeaders($user, $url, array $options = NULL) { $headers = array(); $version = !empty($options['version']) ? $options['version'] : $user->GetDefaultVersion(); // Authorization. if ($user->GetOAuthInfo()) { $oauthParams = $user->GetOAuthHandler()->GetSignedRequestParameters($user->GetOAuthInfo(), $url, 'POST'); $headers['Authorization'] = 'OAuth ' . $user->GetOAuthHandler()->FormatParametersForHeader($oauthParams); } elseif ($user->GetOAuth2Info()) { if (!$user->IsOAuth2AccessTokenValid() && $user->CanRefreshOAuth2AccessToken()) { $user->RefreshOAuth2AccessToken(); } $oauth2Header = $user->GetOAuth2Handler()->FormatCredentialsForHeader($user->GetOAuth2Info()); $headers['Authorization'] = $oauth2Header; } else { $headers['Authorization'] = 'GoogleLogin auth=' . $user->GetAuthToken(); } // Developer token. $headers['developerToken'] = $user->GetDeveloperToken(); // Target client. $email = $user->GetEmail(); $clientId = $user->GetClientId(); if (isset($clientId)) { if (strpos($clientId, '@') !== FALSE) { if ($version < 'v201109') { $headers['clientEmail'] = $clientId; } else { throw new ReportDownloadException('Client emails are not supported ' . 'in versions v201109 and later.'); } } else { $headers['clientCustomerId'] = $clientId; } } else { if ($version < 'v201109' && isset($email)) { $headers['clientEmail'] = $email; } else { throw new ReportDownloadException('The client customer ID must be ' . 'specified for report downloads.'); } } // Flags. if (isset($options['returnMoneyInMicros'])) { $headers['returnMoneyInMicros'] = $options['returnMoneyInMicros'] ? 'true' : 'false'; } return $headers; }