bronto / bronto-api-php-client
此包已废弃,不再维护。未建议替代包。
PHP 客户端库
dev-master
2015-03-18 22:25 UTC
Requires (Dev)
- phpunit/phpunit: 4.5.*
- symfony/class-loader: 2.6.*
- symfony/console: 2.6.*
This package is not auto-updated.
Last update: 2019-03-07 15:02:06 UTC
README
PHP 客户端库 - Bronto SOAP API 的 ActiveRecord 风格抽象。
此库由 Bronto 专业服务工程团队创建和维护。
可免费使用,但无官方支持。
实现的对象
- Account
- Activity
- ApiToken
- Contact
- ContentTag
- Conversion
- Delivery
- Deliverygroup
- Field
- List
- Login
- Message
- Messagerule
- Segment
示例代码
登录
<?php /* @var $bronto \Bronto_Api */ $bronto = new \Bronto_Api(); $bronto->setToken($token); // Or pass $token to the constructor of Bronto_Api $bronto->login(); // Only needs to be called once
创建新的联系人
<?php /* @var $contactObject \Bronto_Api_Contact */ $contactObject = $bronto->getContactObject(); /* @var $contact \Bronto_Api_Contact_Row */ $contact = $contactObject->createRow(); $contact->email = 'user@example.com'; $contact->status = \Bronto_Api_Contact::STATUS_ONBOARDING; // Add Contact to List $contact->addToList($list); // $list can be the (string) ID or a Bronto_Api_List instance // Set a custom Field value $contact->setField($field, $value); // $field can be the (string) ID or a Bronto_Api_Field instance // Save try { $contact->save(); } catch (Exception $e) { // Handle error }
创建/更新多个联系人
<?php /* @var $contactObject \Bronto_Api_Contact */ $contactObject = $bronto->getContactObject(); /* @var $contacts \Bronto_Api_Rowset */ $contacts = $contactObject->addOrUpdate(array( array('email' => 'joe.doe+1@example'), array('email' => 'joe.doe+2@example'), array('email' => 'joe.doe+3@example'), ));
删除联系人
<?php /* @var $contactObject \Bronto_Api_Contact */ $contactObject = $bronto->getContactObject(); try { /* @var $contact \Bronto_Api_Contact_Row */ $contact->delete(); } catch (Exception $e) { // Handle error }
使用过滤器读取联系人
选项 #1:使用分页
<?php /* @var $contactObject \Bronto_Api_Contact */ $contactObject = $bronto->getContactObject(); // Filter by status $contactsFilter['status'] = array(\Bronto_Api_Contact::STATUS_TRANSACTIONAL); // ... and by created after date $contactsFilter['created'] = array( 'operator' => 'After', 'value' => date('c', time() - (86400 * 7)), ); // ... and is on a list $contactsFilter['listId'] = array($list->id); $contactsCounter = 0; $contactsPage = 1; while ($contacts = $contactObject->readAll($contactsFilter, array(), false, $contactsPage)) { if (!$contacts->count()) { break; } foreach ($contacts as $contact /* @var $contact \Bronto_Api_Contact_Row */) { echo "{$contactsCounter}. {$contact->email}\n"; $contactsCounter++; } $contactsPage++; }
选项 #2:使用迭代器
<?php // ... $contactsCounter = 0; foreach ($contactObject->readAll($contactsFilter)->iterate() as $contact /* @var $contact \Bronto_Api_Contact_Row */) { echo "{$contactsCounter}. {$contact->email}\n"; $contactsCounter++; }
按名称读取列表
<?php /* @var $listObject \Bronto_Api_List */ $listObject = $bronto->getListObject(); /* @var $list \Bronto_Api_List_Row */ $list = $listObject->createRow(); $list->name = 'My Example List'; try { $list = $list->read(); } catch (Exception $e) { // Handle error }
清除列表
<?php /* @var $listObject \Bronto_Api_List */ $listObject = $bronto->getListObject(); / @var $listIds \Array */ $listIds = array(array(id => '0bbd03ec000000000000000000000003c2a1')); try { $response = $listObject->clear($listIds); // Check for errors if ($response->hasErrors()) { $error = $response->getError(); throw new Exception($error['message']); } } catch (Exception $e) { // Handle error }
创建新字段
<?php /* @var $fieldObject \Bronto_Api_Field */ $fieldObject = $bronto->getFieldObject(); /* @var $field \Bronto_Api_Field_Row */ $field = $fieldObject->createRow(); $field->name = $name; try { $field->save(); } catch (Exception $e) { // Handle error }
检索 ContentTag
<?php /* @var $contentTagObject \Bronto_Api_ContentTag */ $contentTagObject = $bronto->getContentTagObject(); /* @var $contentTag \Bronto_Api_ContentTag_Row */ $contentTag = $contentTagObject->createRow(); $contentTag->id = '123'; try { $contentTag = $contentTag->read(); } catch (Exception $e) { // Handle error }
检索 Message
<?php /* @var $messageObject \Bronto_Api_Message */ $messageObject = $bronto->getMessageObject(); /* @var $message \Bronto_Api_Message_Row */ $message = $messageObject->createRow(array('id' => '123')); $message->read();
创建 Delivery
<?php /* @var $deliveryObject \Bronto_Api_Delivery */ $deliveryObject = $bronto->getDeliveryObject(); /* @var $delivery \Bronto_Api_Delivery_Row */ $delivery = $deliveryObject->createRow(); $delivery->start = date('c'); // Today $delivery->type = \Bronto_Api_Delivery_Row::TYPE_TRANSACTIONAL; $delivery->messageId = $message->id; $delivery->fromEmail = 'user@example.com'; $delivery->fromName = 'Example Sender'; $delivery->recipients = array( array( 'type' => 'contact', 'id' => $contact->id, ), ); $delivery->save();
读取 Delivery
<?php /* @var $deliveryObject \Bronto_Api_Delivery */ $deliveryObject = $bronto->getDeliveryObject(); /* @var $delivery \Bronto_Api_Delivery_Row */ $delivery = $deliveryObject->createRow(array( 'id' => 'some delivery id' )); $delivery->read();
从 Delivery 读取收件人
<?php /* @var $delivery \Bronto_Api_Delivery_Row */ $recipients = $delivery->getRecipients(); foreach ($recipients as $recipient /* @var $recipient \Bronto_Api_Delivery_Recipient */) { // Do something with $recipient }