The AdWordsUser class can be configured in one of two ways:
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 null) 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 null, will, however, overwrite any parameter loaded from the default INI.
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.
public __construct ( string | null $authenticationIniPath = null, string | null $developerToken = null, string | null $userAgent = null, string | null $clientCustomerId = null, string | null $settingsIniPath = null, array | null $oauth2Info = null ) | ||
$authenticationIniPath | string | null | the absolute path to the authentication INI or relative to the current directory (cwd). If null, the default authentication INI file will attempt to be loaded |
$developerToken | string | null | the developer token (required header). Will overwrite the developer token entry loaded from any INI file |
$userAgent | string | null | 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 |
$clientCustomerId | string | null | the client customer ID to make the request against (optional header). Will overwrite the clientCustomerId entry loaded from any INI file |
$settingsIniPath | string | null | the path to the settings INI file. If null, the default settings INI file will be loaded |
$oauth2Info | array | null | 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);
if (isset($oauth2Info['oAuth2AdditionalScopes'])) {
$scopes = explode(',', $oauth2Info['oAuth2AdditionalScopes']);
} else {
$scopes = array();
}
$scopes[] = self::OAUTH2_SCOPE;
$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->updateClientLibraryUserAgent($userAgent);
$this->SetClientCustomerId($clientCustomerId);
$this->SetDeveloperToken($developerToken);
$this->SetScopes($scopes);
if ($settingsIniPath === null) {
$settingsIniPath = dirname(__FILE__) . '/../settings.ini';
}
$this->LoadSettings($settingsIniPath, $defaultVersion, $defaultServer, getcwd(), dirname(__FILE__));
}
/** * Class constructor * * @param1 - auth data. Can be array with auth info, * xml-type content, filename of auth xml or ini file * @param2 - settings data. Can be array with settings info, * xml-type content, filename of settings ini or xml file. * */ public function __construct($auth = NULL, $settings = NULL) { $this->defaultLogsDir = dirname(__FILE__); $this->logsRelativePathBase = dirname(__FILE__); // parent constructor not needed // AdsUser::__construct(); // parent::__construct($auth,null,null,null,null,null,null,$settings); if (isset($auth) && $auth) { $this->CheckAuth($auth); } if (isset($settings) && $settings) { $this->CheckSettings($settings); } parent::__construct($auth, null, null, null, null, null, null, $settings); $oAuth2Handler = $this->GetOAuth2Handler(); if (!isset($oAuth2Handler) || empty($oAuth2Handler) || !is_object($oAuth2Handler)) { //@todo send server, scope and curlUtils to constructor? $oAuth2Handler = new OAuth2HandlerExt(); $this->SetOAuth2Handler($oAuth2Handler); } }