Пример #1
0
 /**
  * Overrides the method SoapClient.__soapCall() to process the
  * response from the SOAP call.
  * @param string $function_name the name of the function being called
  * @param array $arguments the arguments to that function
  * @param array $options the options for the SOAP call
  * @param array $input_headers the optional input headers
  * @param array $output_headers the options output headers
  * @return mixed the return from the parent __soapCall
  * @throws SOAPFault if there was an exception making the request
  */
 function __soapCall($function_name, $arguments, $options = NULL, $input_headers = NULL, &$output_headers = NULL)
 {
     DeprecationUtils::CheckAdsUserUsingOAuth2($this->user);
     try {
         $input_headers[] = $this->GenerateSoapHeader();
         $this->lastHeaders = $input_headers;
         $this->lastArguments = $arguments;
         $response = parent::__soapCall($function_name, $arguments, $options, $input_headers, $output_headers);
         $this->ProcessResponse($this->lastRequest, $this->__getLastResponse(), $function_name);
         return $response;
     } catch (\SoapFault $e) {
         $this->ProcessResponse($this->lastRequest, $this->__getLastResponse(), $function_name, $e);
         throw $e;
     }
 }
Пример #2
0
 /**
  * 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 {
         throw new ServiceException('OAuth 2.0 authentication is required.');
     }
     $headers['Authorization'] = $authHeader;
     // Developer token.
     $headers['developerToken'] = $user->GetDeveloperToken();
     // Target client.
     $clientCustomerId = $user->GetClientCustomerId();
     if (isset($clientCustomerId)) {
         $headers['clientCustomerId'] = $clientCustomerId;
     } else {
         throw new ReportDownloadException('The client customer ID must be ' . 'specified for report downloads.');
     }
     // Flags.
     if (isset($options['skipReportHeader'])) {
         $headers['skipReportHeader'] = $options['skipReportHeader'] ? 'true' : 'false';
     }
     if (isset($options['skipColumnHeader'])) {
         DeprecationUtils::CheckUsingReportHeadersWithUnsupportedVersion('skipColumnHeader', self::MINIMUM_SKIP_COLUMN_HEADER_VERSION, $version);
         $headers['skipColumnHeader'] = $options['skipColumnHeader'] ? 'true' : 'false';
     }
     if (isset($options['skipReportSummary'])) {
         $headers['skipReportSummary'] = $options['skipReportSummary'] ? 'true' : 'false';
     }
     if (isset($options['includeZeroImpressions'])) {
         DeprecationUtils::CheckUsingReportHeadersWithUnsupportedVersion('includeZeroImpressions', self::MINIMUM_INCLUDE_ZERO_IMPRESSIONS_HEADER_VERSION, $version);
         $headers['includeZeroImpressions'] = $options['includeZeroImpressions'] ? 'true' : 'false';
     }
     return $headers;
 }