wildsurfer/infusionsoft-sync

v0.2.1 2014-11-27 18:40 UTC

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"
      }
  }

运行测试

为此库编写的测试分为两个测试套件:unitfunctional。要运行功能测试,您需要设置Infusionsoft沙盒帐户并找到您的appnameapikey

更多信息

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