christiaan/zohocrmclient

此包已被弃用且不再维护。作者建议使用zohocrm/php-sdk-archive包。

提供对Zoho Rest API的清晰易读的PHP API

0.9.4 2017-06-22 12:15 UTC

This package is not auto-updated.

Last update: 2021-01-06 07:52:18 UTC


README

Scrutinizer Quality Score Build Status

提供对Zoho Rest API的清晰易读的PHP API。

用法

use Christiaan\ZohoCRMClient\ZohoCRMClient;

$client = new ZohoCRMClient('Leads', 'yourAuthKey');

$records = $client->getRecords()
    ->selectColumns('First Name', 'Last Name', 'Email')
    ->sortBy('Last Name')->sortAsc()
    ->since(date_create('last week'))
    ->request();

echo 'Content: ' . print_r($records, true) . PHP_EOL;

启用日志记录

您可以在创建客户端后添加以下行来启用日志记录

$client->setLogger($myPsrLogger);

日志记录器应实现PSR LoggerInterface。如果正在使用的传输实现LoggerAwareInterface,则此调用将同时设置传输的日志记录器。内置传输支持此功能。

选择不同的Zoho领域

默认情况下,ZohoCRMClient将连接到crm.zoho.com上的API。如果您希望连接到不同的API,可以在构造函数中将TLD作为第三个参数提供。例如,位于EU领域的客户应按如下方式实例化客户端

$client = new ZohoCRMClient('Leads', 'yourAuthKey', 'eu');

使用自定义传输

如果愿意,您可以为ZohoCRMClient提供自定义传输类,如下所示

$buzzTransport = new BuzzTransport(
    new \Buzz\Browser(new \Buzz\Client\Curl()),
    'https://crm.zoho.com/crm/private/xml/'
);
$buzzTransport->setLogger($logger);

$transport = new XmlDataTransportDecorator(
    new AuthenticationTokenTransportDecorator(
        'yourAuthKey',
        $buzzTransport
    )
);

$client = new ZohoCRMClient('Leads', $transport);

已实现的调用

目前仅支持以下调用

添加新调用相对容易,请查看Request目录中的一个类以获取示例。在Request类创建后,可能需要在XmlDataTransportDecorator类中更改响应XML的解析。

更多示例

insertRecords()

use Christiaan\ZohoCRMClient\ZohoCRMClient;

$client = new ZohoCRMClient('Contacts', 'yourAuthKey');

$records = $client
            ->insertRecords()
            ->addRecord([
                'Email' => 'john@example.com',
                'First Name' => 'John'
            ])
            ->request();

您可以选择在request()之前将onDuplicateUpdate()onDuplicateError()添加到链中,以指示Zoho在重复记录上更新或失败。重复检查取决于目标模块,请参阅Zoho文档中的列表。

数组$records将包含您尝试创建的每个记录的条目,成功时将包含新记录(或更新的记录)的ID。

updateRecords()

use Christiaan\ZohoCRMClient\ZohoCRMClient;

$client = new ZohoCRMClient('Contacts', 'yourAuthKey');

$records = $client
            ->updateRecords()
            ->addRecord([
                'Id' => '(ID returned from insert, search, ...)'
                'Last Name' => 'Smith'
            ])
            ->request();

在更新多个记录时,需要指定每条记录的ID。或者,如果只更新单个记录,您也可以调用id()来设置ID。按记录设置ID在两种情况下都适用。

searchResults()

use Christiaan\ZohoCRMClient\ZohoCRMClient;

$client = new ZohoCRMClient('Contacts', 'yourAuthKey');

$records = $client
            ->searchRecords()
            ->criteria('Email:john@example.com')
            ->request();

有关如何编写准则的完整说明,请参阅Zoho文档