/** * Runs the example. */ function HandleTwoFactorAuthorizationErrorExample() { // Create an AdWordsUser using the credentials for a 2-step tester account. $user = new AdWordsUser(NULL, '*****@*****.**', 'testaccount'); try { $authToken = $user->GetAuthToken(); printf("Successfully retrieved auth token for the account '%s': '%s'\n", $user->GetEmail(), $authToken); } catch (AuthTokenException $e) { if (strpos($e->GetError(), 'InvalidSecondFactor') !== FALSE) { // See http://goo.gl/SHgXV for more details. print "The account has 2-step verification enabled, so an " . "application-specific password must be used instead.\n"; } else { print "Invalid email or password.\n"; } } }
/** * Runs the example. * @param AdWordsUser $user the user to run the example with */ function GetAccountHierarchyExample(AdWordsUser $user) { // Get the service, which loads the required classes. $servicedAccountService = $user->GetService('ServicedAccountService', 'v201109'); // Create selector. $selector = new ServicedAccountSelector(); // To get the links paging must be disabled. $selector->enablePaging = FALSE; // Make the get request. $graph = $servicedAccountService->get($selector); // Display serviced account graph. if (isset($graph->accounts)) { // Create map from customerId to parent and child links. $childLinks = array(); $parentLinks = array(); if (isset($graph->links)) { foreach ($graph->links as $link) { $childLinks[$link->managerId->id][] = $link; $parentLinks[$link->clientId->id][] = $link; } } // Create map from customerID to account, and find root account. $accounts = array(); $rootAccount = NULL; foreach ($graph->accounts as $account) { $accounts[$account->customerId] = $account; if (!array_key_exists($account->customerId, $parentLinks)) { $rootAccount = $account; } } // The root account may not be returned in the sandbox. if (!isset($rootAccount)) { $rootAccount = new Account(); $rootAccount->customerId = 0; $rootAccount->login = $user->GetEmail(); } // Display account tree. print "(Customer Id, Account Name/Login, Link Status)\n"; DisplayAccountTree($rootAccount, NULL, $accounts, $childLinks, 0); } else { print "No serviced accounts were found.\n"; } }
/** * Runs the example. * @param AdWordsUser $user the user to run the example with */ function GetAccountHierarchyExample(AdWordsUser $user) { // Get the service, which loads the required classes. $managedCustomerService = $user->GetService('ManagedCustomerService', ADWORDS_VERSION); // Create selector. $selector = new Selector(); // Specify the fields to retrieve. $selector->fields = array('Login', 'CustomerId', 'Name'); // Make the get request. $graph = $managedCustomerService->get($selector); // Display serviced account graph. if (isset($graph->entries)) { // Create map from customerId to parent and child links. $childLinks = array(); $parentLinks = array(); if (isset($graph->links)) { foreach ($graph->links as $link) { $childLinks[$link->managerCustomerId][] = $link; $parentLinks[$link->clientCustomerId][] = $link; } } // Create map from customerID to account, and find root account. $accounts = array(); $rootAccount = NULL; foreach ($graph->entries as $account) { $accounts[$account->customerId] = $account; if (!array_key_exists($account->customerId, $parentLinks)) { $rootAccount = $account; } } // The root account may not be returned in the sandbox. if (!isset($rootAccount)) { $rootAccount = new Account(); $rootAccount->customerId = 0; $rootAccount->login = $user->GetEmail(); } // Display account tree. print "(Customer Id, Account Name/Login)\n"; DisplayAccountTree($rootAccount, NULL, $accounts, $childLinks, 0); } else { print "No serviced accounts were found.\n"; } }
/** * 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; }
/** * 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. $authHeader = NULL; $oAuth2Info = $user->GetOAuth2Info(); $oAuth2Handler = $user->GetOAuth2Handler(); if (!empty($oAuth2Info)) { $oAuth2Info = $oAuth2Handler->GetOrRefreshAccessToken($oAuth2Info); $user->SetOAuth2Info($oAuth2Info); $authHeader = $oAuth2Handler->FormatCredentialsForHeader($oAuth2Info); } else { $authHeader = sprintf(self::CLIENT_LOGIN_FORMAT, $user->GetAuthToken()); } $headers['Authorization'] = $authHeader; // Developer token. $headers['developerToken'] = $user->GetDeveloperToken(); // Target client. $email = $user->GetEmail(); $clientCustomerId = $user->GetClientCustomerId(); if (isset($clientCustomerId)) { $headers['clientCustomerId'] = $clientCustomerId; } 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; }