Отправка дат с помощью XML-RPC в OpenX - PullRequest
2 голосов
/ 28 августа 2010

Я пытаюсь вставить кампанию в openX с XML-RPC API, все, кроме даты начала и окончания, работает нормально, мой текущий код выглядит так:

$campaign = new XML_RPC_Value(
                    array('advertiserId' => new XML_RPC_Value($advertiserID, 'int'),
                            'campaignName' => new XML_RPC_Value('My Banner', 'string'),
                            'startDate' => new XML_RPC_Value(new Date(time()), 'DateTime'),
                            'endDate' => new XML_RPC_Value(new Date(time() + (3600*24*3), 'DateTime')/*3 days into the future*/,
                            'impressions' => new XML_RPC_Value(10000, 'int'),
                            'clicks' => new XML_RPC_Value(-1, 'int'),
                            'priority' => new XML_RPC_Value(1, 'int'),
                            'weight' => new XML_RPC_Value(0, 'int')
                    ), 
                    'struct');

Я использую пакет PEAR XML_RPC. Этот код работает нормально без каких-либо ошибок, однако, когда я смотрю на панель управления OpenX, моя новая кампания не имеет даты начала или окончания (для них установлено значение «Начать немедленно» и «Не истечь»).

В каком формате должна быть дата, чтобы OpenX ее принял?

Ответы [ 2 ]

2 голосов
/ 07 сентября 2010

РЕДАКТИРОВАТЬ: глядя на код http://pear.php.net/package/XML_RPC, вам нужно самостоятельно кодировать даты в виде строк ISO 8601:

Попробуйте так:

$campaign = new XML_RPC_Value(
                array('advertiserId' => new XML_RPC_Value($advertiserID, 'int'),
                        'campaignName' => new XML_RPC_Value('My Banner', 'string'),
                        'startDate' => new XML_RPC_Value(date('c'), 'dateTime.iso8601'),
                        'endDate' => new XML_RPC_Value(date('c', time() + (3600*24*3)), 'dateTime.iso8601')/*3 days into the future*/,
                        'impressions' => new XML_RPC_Value(10000, 'int'),
                        'clicks' => new XML_RPC_Value(-1, 'int'),
                        'priority' => new XML_RPC_Value(1, 'int'),
                        'weight' => new XML_RPC_Value(0, 'int')
                ), 
                'struct');

(XML-РПЦ тип даты «dateTime.iso8601», а не «DateTime».)

0 голосов
/ 07 сентября 2010

Вы читали это? Изменение формата даты Он должен быть в состоянии сказать вам, как он настроен, а затем вы можете либо ввести его таким образом, либо изменить его в соответствии со своими потребностями.

...