Esempio n. 1
0
 /**
  * The AdWordsUser constructor.
  * <p>The AdWordsUser class can be configured in one of two ways:
  * <ol><li>Using an authenitcation INI file</li>
  * <li>Using supplied credentials</li></ol></p>
  * <p>If an authentication INI file is provided and successfully loaded, those
  * values will be used unless a corresponding parameter overwrites it.
  * If the authentication INI file is not provided (e.g. it is <var>null</var>)
  * the class will attempt to load the default authentication file at the path
  * of "../auth.ini" relative to this file's directory. Any corresponding
  * parameter, which is not <var>null</var>, will, however, overwrite any
  * parameter loaded from the default INI.</p>
  * <p>Likewise, if a custom settings INI file is not provided, the default
  * settings INI file will be loaded from the path of "../settings.ini"
  * relative to this file's directory.</p>
  * @param string $authenticationIniPath the absolute path to the
  *     authentication INI or relative to the current directory (cwd). If
  *     <var>null</var>, the default authentication INI file will attempt to be
  *     loaded
  * @param string $developerToken the developer token (required header). Will
  *     overwrite the developer token entry loaded from any INI file
  * @param string $userAgent the user agent name (required header). Will
  *     be prepended with the library name and version. Will overwrite the
  *     userAgent entry loaded from any INI file
  * @param string $clientCustomerId the client customer ID to make the request
  *     against (optional header). Will overwrite the clientCustomerId entry
  *     loaded from any INI file
  * @param string $settingsIniPath the path to the settings INI file. If
  *     <var>null</var>, the default settings INI file will be loaded
  * @param array $oauth2Info the OAuth 2.0 information to use for requests
  */
 public function __construct($authenticationIniPath = null, $developerToken = null, $userAgent = null, $clientCustomerId = null, $settingsIniPath = null, $oauth2Info = null)
 {
     parent::__construct();
     $buildIniAw = parse_ini_file(dirname(__FILE__) . '/build.ini', false);
     $buildIniCommon = parse_ini_file(dirname(__FILE__) . '/../../Common/Lib/build.ini', false);
     $this->libName = $buildIniAw['LIB_NAME'];
     $this->libVersion = $buildIniCommon['LIB_VERSION'];
     $apiProps = ApiPropertiesUtils::ParseApiPropertiesFile(dirname(__FILE__) . '/api.properties');
     $versions = explode(',', $apiProps['api.versions']);
     $defaultVersion = $versions[count($versions) - 1];
     $defaultServer = $apiProps['api.server'];
     if ($authenticationIniPath === null) {
         $authenticationIniPath = dirname(__FILE__) . '/../auth.ini';
     }
     $authenticationIni = parse_ini_file(realpath($authenticationIniPath), true);
     $developerToken = $this->GetAuthVarValue($developerToken, 'developerToken', $authenticationIni);
     $userAgent = $this->GetAuthVarValue($userAgent, self::USER_AGENT_HEADER_NAME, $authenticationIni);
     $clientCustomerId = $this->GetAuthVarValue($clientCustomerId, 'clientCustomerId', $authenticationIni);
     $oauth2Info = $this->GetAuthVarValue($oauth2Info, 'OAUTH2', $authenticationIni);
     $clientId = $this->GetAuthVarValue(null, 'clientId', $authenticationIni);
     if ($clientId !== null) {
         throw new ValidationException('clientId', $clientId, 'The authentication key "clientId" has been changed to' . ' "clientCustomerId", please use that instead.');
     }
     $this->SetOAuth2Info($oauth2Info);
     $this->SetUserAgent($userAgent);
     $this->SetClientLibraryUserAgent($userAgent);
     $this->SetClientCustomerId($clientCustomerId);
     $this->SetDeveloperToken($developerToken);
     if ($settingsIniPath === null) {
         $settingsIniPath = dirname(__FILE__) . '/../settings.ini';
     }
     $this->LoadSettings($settingsIniPath, $defaultVersion, $defaultServer, getcwd(), dirname(__FILE__));
 }