wildsurfer / infusionsoft-sync
v0.2.1
2014-11-27 18:40 UTC
Requires
- infusionsoft/php-isdk: dev-master
Requires (Dev)
- phpunit/phpunit: ~4.1
This package is not auto-updated.
Last update: 2024-09-24 02:03:33 UTC
README
使用此库在您的应用程序和Infusionsoft CRM之间添加双向同步。
功能
- 配置字段名称
- 如有必要,使用自定义字段名称
- 配置标签名称
- 优化以处理大数据集
工作原理
此库实现两种方法来帮助您的应用程序与Infusionsoft API同步:pull()
和push()
pull()
将访问远程API,获取所有联系人并将其返回给您。然后,您可以使用这些数据将其与应用程序存储同步
push()
将允许您将本地用户推送到远程。此方法足够智能,可以在联系人已在Infusionsoft中存在时更新它们,并在没有更改时跳过。
在底层,push()
方法中有一个对pull()
方法的调用。这样做是为了最小化API调用次数并加快大数据集的处理速度。然而,当推送一个联系人时,将跳过pull()
以防止冗余。
示例
从Infusionsoft API获取联系人列表
<?php use Wildsurfer\Infusionsoft; $options = array( 'appname' => 'myappname', 'apikey' => 'asdU234YGUYG1234gjhg', 'tags' => array( '1', '2', '3' ), 'fields' = array( 'Email', 'FirstName', 'LastName' ) ); $sync = new Sync($options); $infusionsoftContacts = $sync->pull();
将您的应用程序用户推送到Infusionsoft API
<?php $myUsers = ... // Fetch data from your storage $toBeSyncedUsers = new ContactCollection(); foreach($myUsers as $user) { $array = someFunctionToMapYourFieldNamesToInfusionsoftFieldNames($user); $toBeSyncedUsers->create(new Contact($array)); } $result = $sync->push($toBeSyncedUsers); $created = $result['create']->read(); // Array of created contacts $updated = $result['update']->read(); // Array of updated contacts $failed = $result['fail']->read(); // Array of failed contacts $skipped = $result['skip']->read(); // Array of skipped contacts
显示错误
<?php $result = $sync->push(...); $failed = $result['fail']; // Array of failed contacts if ($failed->count() > 0) { foreach ($failed->read() as $f) { echo $f->getErrorMessage(); } }
使用Composer安装
{ require: { "wildsurfer/infusionsoft": "dev-master" } }
运行测试
为此库编写的测试分为两个测试套件:unit
和functional
。要运行功能测试,您需要设置Infusionsoft沙盒帐户并找到您的appname
和apikey
。
更多信息
https://developer.infusionsoft.com/sandbox_application
http://ug.infusionsoft.com/article/AA-00442/0/Infusionsoft-API-Key.html
$ cp infusionsoft.ini.dist infusionsoft.ini $ vim infusionsoft.ini