Я использую AdobeDigitalMarketing API (https://github.com/Adobe-Marketing-Cloud/marketing-cloud-php-sdk) для вызова API-интерфейсов для получения данных Omniture.
Этот скрипт работает нормально:
define('OMNITURE_USERNAME', 'XXX');
define('OMNITURE_SECRET', 'XXX');
define('ROOT', dirname(__FILE__));
require_once(ROOT.'/lib/AdobeDigitalMarketing/Autoloader.php');
AdobeDigitalMarketing_Autoloader::register();
$adm = new AdobeDigitalMarketing_Client();
$adm->authenticate(OMNITURE_USERNAME, OMNITURE_SECRET);
echo $adm->getCompanyApi()->getEndpoint('Ford EU');
$reportApi = $adm->getReportApi();$response = $reportApi->queueRanked(array(
'reportSuiteID' => 'fmeuesprod',
'date' => date('Y-m-d', strtotime("-1 day")),
'metrics' => array(
array('id' => 'instances'),
),
'elements' => array(
array('id' => 'prop11'),
),
'segments' => array(
array('id' => 'prop11', 'selected' => array('brand:vehicle:brochures:interactive'))
),
'segment_id' => 'dw:80632'
));
$reportId = $response['reportID'];
//echo $reportId;
//$reportId = '67854594';
do {
$report = $reportApi->getReport($reportId);
sleep(2);
} while ($report['status'] == 'not ready');
print_r($report['report']);
Но если я позвоню несколько раз, верните это:
Fatal error: Uncaught exception 'AdobeDigitalMarketing_Api_ReportError' with message 'A system error has occurred' in /var/www/OmnitureAPI/lib/AdobeDigitalMarketing/Api/Report.php:202 Stack trace: #0 /var/www/OmnitureAPI/lib/AdobeDigitalMarketing/Api/Report.php(84): AdobeDigitalMarketing_Api_Report->returnResponse(Array) #1 /var/www/OmnitureAPI/test.php(43): AdobeDigitalMarketing_Api_Report->getReport(67856255) #2 {main} thrown in /var/www/OmnitureAPI/lib/AdobeDigitalMarketing/Api/Report.php on line 202
Если я подожду около 5 минут и нажму F5, скрипт сработает, если снова нажать F5, вернем ошибку …
Документация по API ничего не показывает об этом, и мне нужно каждый раз вызывать этот скрипт с разными датами.
Любая идея, чтобы решить это?
Спасибо!
я нашел проблему:
API 1.3 теперь «устарел», если изменить API перед входом в систему, все работает:
$adm = new AdobeDigitalMarketing_Client();
$adm->getHttpClient()->setOption('api_version', '1.4');
$adm->authenticate(OMNITURE_USERNAME, OMNITURE_SECRET);
Спасибо всем за помощь и комментарии!
Других решений пока нет …