2

XML-RPC API を使用してキャンペーンを openX に挿入しようとしています。開始日と終了日以外はすべて正常に機能しています。現在のコードは次のようになります。

$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 が受け入れるには、日付をどのような形式にする必要がありますか?

4

2 に答える 2

2

編集: 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-RPC 日付型は「DateTime」ではなく「dateTime.iso8601」です。)

于 2010-09-07T18:57:21.910 に答える
0

これを読んだことがありますか?日付形式の変更どのように設定されているかを示すことができるはずです。その後、その方法で入力するか、ニーズに合わせて変更することができます。

于 2010-09-07T09:29:30.087 に答える