public function login($credentials)
{
$this->_credentials = $credentials;
$this->_client = new \Oara\Curl\Access($credentials);
$user = $this->_credentials['user'];
$password = $this->_credentials['password'];
$loginUrl = 'https://member.impactradius.co.uk/secure/login.user';
$valuesLogin = array(new \Oara\Curl\Parameter('j_username', $user), new \Oara\Curl\Parameter('j_password', $password));
$urls = array();
$urls[] = new \Oara\Curl\Request($loginUrl, $valuesLogin);
$this->_client->post($urls);
// Get accounts and API credentials for each account
$urls = array();
$urls[] = new \Oara\Curl\Request('https://member.impactradius.co.uk/secure/mediapartner/home/pview.ihtml', array());
$exportReport = $this->_client->get($urls);
if (preg_match_all('/\\/secure\\/member\\/set\\-current\\-usership\\-flow\\.ihtml\\?newUsershipId=(.+)\'/', $exportReport[0], $match)) {
$this->_accounts = array();
for ($i = 0; $i < count($match[1]); $i++) {
$accountId = $match[1][$i];
$urls = array();
$urls[] = new \Oara\Curl\Request('https://member.impactradius.co.uk/secure/member/set-current-usership-flow.ihtml?newUsershipId=' . $accountId, array());
$this->_client->get($urls);
// Get API credentials for this account
$urls = array();
$urls[] = new \Oara\Curl\Request('https://member.impactradius.co.uk/secure/mediapartner/accountSettings/mp-wsapi-flow.ihtml?', array());
$exportReport = $this->_client->get($urls);
$dom = new \Zend_Dom_Query($exportReport[0]);
$results = $dom->query('div .uitkFields');
$count = \count($results);
if ($count == 0) {
$activeAPI = array(new \Oara\Curl\Parameter('_eventId', "activate"));
$urls = array();
$urls[] = new \Oara\Curl\Request('https://member.impactradius.co.uk/secure/mediapartner/accountSettings/mp-wsapi-flow.ihtml?', $activeAPI);
$this->_client->post($urls);
$urls = array();
$urls[] = new \Oara\Curl\Request('https://member.impactradius.co.uk/secure/mediapartner/accountSettings/mp-wsapi-flow.ihtml?', array());
$exportReport = $this->_client->get($urls);
$dom = new \Zend_Dom_Query($exportReport[0]);
$results = $dom->query('div .uitkFields');
$count = \count($results);
// get number of matches: 4
if ($count == 0) {
throw new \Exception("No API credentials");
}
}
$j = 0;
$account = array();
foreach ($results as $result) {
if ($j == 0) {
$account['accountSid'] = \str_replace(array("\n", "\t", " "), "", $result->nodeValue);
} else {
if ($j == 1) {
$account['authToken'] = \str_replace(array("\n", "\t", " "), "", $result->nodeValue);
} else {
$this->_accounts[] = $account;
break;
}
}
$j++;
}
}
}
}