lafourchette / adobe-campaign-client-bundle
提供访问 Adobe Campaign API 的权限
此软件包的官方仓库似乎已消失,因此该软件包已被冻结。
v1.1.0
2015-11-09 11:49 UTC
Requires
- besimple/soap: ^0.2.6
- symfony/config: ~2.1
- symfony/dependency-injection: ~2.1
Requires (Dev)
This package is not auto-updated.
Last update: 2024-01-20 15:10:20 UTC
README
提供访问 Adobe Campaign SOAP API 的权限
安装
将 AdobeCampaignClientBundle 添加到您的 composer.json 中,然后更新
{ ... "require": { "lafourchette/adobe-campaign-client-bundle": "~1.0" }, ... }
将 AdobeCampaignClientBundle 添加到您的应用程序内核
// app/AppKernel.php public function registerBundles() { return array( // ... new LaFourchette\AdobeCampaignBundle\LaFourchetteAdobeCampaignBundle(), // ... ); }
更新您的配置
# app/config/config.yml adobe_campaign_client: base_uri: http://adobe_campaign.uri.com login: login password: password schemas: #A client instance will be created for each schema you need query_def: name: query_def schema: xtk:queryDef
使用
// Retrieve client service $client = $container->get('adobe_campaign_client.client.query_def'); // Prepare SOAP envelope $envelope = <<<EOT <x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:xtk:queryDef"> <x:Header/> <x:Body> <urn:ExecuteQuery> <urn:sessiontoken>%s</urn:sessiontoken> <entity xsi:type='ns:Element' SOAP-ENV:encodingStyle='http://xml.apache.org/xml-soap/literalxml'> <queryDef operation="select" schema="nms:broadLogRcp" xtkschema="xtk:queryDef" lineCount="100"> <select> <node expr="@id"/> <node expr="[recipient/@id]"/> <node expr="[delivery/@label]"/> </select> <where> <condition expr="[@recipient-id] = %s"/> </where> <orderBy> <node expr="@eventDate" sortDesc="true"/> </orderBy> </queryDef> </entity> </urn:ExecuteQuery> </x:Body> </x:Envelope> EOT; // Execute SOAP request $xmlResponse = $client->doCustomSoapRequest( sprintf($envelope, $client->getConfiguration()->getSession(), $idCustomer), 'ExecuteQuery' ); // Parse results $campaignList = array(); foreach ($xmlResponse->xpath('/Envelope/Body/ExecuteQueryResponse/pdomOutput/broadLogRcp-collection/broadLogRcp') as $broadLogRcp) { $delivery = $broadLogRcp->xpath('delivery'); $delivery = current($delivery); $campaignList[] = array( 'id' => (int) $broadLogRcp['id'], 'label' => (string) $delivery['label'] ) ); } return $campaignList;
许可
此软件包遵循 MIT 许可协议。