clystnet / vtiger
运行 Vtiger Webservice API 的包
Requires
- php: >=5.6.0
- guzzlehttp/guzzle: ~6.0
This package is auto-updated.
Last update: 2020-10-28 09:11:26 UTC
README
在 Clystnet,我们不再维护此开源版本的包。但是,我们仍然维护我们内部版本的此包,您可以联系 sales@clystnet.com 了解使用方法。
Vtiger (Laravel 5 包)
使用 Laravel 在以下操作中使用 Vtiger webservice (REST) API。
- 创建
- 检索
- 更新
- 删除
- 搜索
- 查询
- 描述
安装、配置和使用
安装
-
要安装 Vtiger 包到您的 Laravel 项目中,只需在终端运行 composer require 命令
composer require "clystnet/vtiger ^1.4"
如果您使用 Laravel >= 5.5,则无需执行步骤 2 和 3。
-
然后在您的 config/app.php 中,将以下内容添加到 providers 数组中
Clystnet\Vtiger\VtigerServiceProvider::class,
-
在相同的 config/app.php 中,将以下内容添加到 aliases 数组中
'Vtiger' => Clystnet\Vtiger\Facades\Vtiger::class,
-
发布配置文件
php artisan vendor:publish --tag="vtiger"
配置
- 在 Vtiger 中,创建一个新用户或选择一个现有用户。
- 在 用户高级选项 下,记录下 用户名 和 访问密钥。
- 在您的应用程序中,编辑 config/vtiger.php 并替换以下数组值
-
将 URL 设置为 https://{域名}/webservice.php
-
使用您的 CRM 用户名和访问密钥设置用户名和 accesskey。
-
如果您希望每次请求都进行新鲜登录,请将 persistconnection 设置为 false
key value url http://www.example.com/webservice.php username API accesskey irGsy9HB0YOZdEA persistconnection true max_retries 10
-
因为我遇到过在多个用户同时访问 CRM 时从 CRM 获取 sessionid 的问题,解决方案是将 sessionid 存储在 Laravel 应用程序中的一个文件中。而不是在每次请求中使用 webservice API 从数据库获取令牌,我们检查文件中的过期时间。如果过期时间已过期,则从 CRM 请求令牌,并使用新的令牌和更新后的过期时间更新文件。
使用
在您的控制器中包含 Vtiger 包
use Vtiger;
创建
要将记录插入CRM中,首先创建一个要插入的数据数组。别忘了添加 assigned_user_id
的id(例如 '4x12'),否则插入将失败,因为 assigned_user_id
是必填字段。
$data = array( 'assigned_user_id' => '', );
要执行实际插入,将模块名称和json编码的数组传递给 create 函数。
Vtiger::create($MODULE_NAME, json_encode($data));
检索
要从CRM中检索记录,您需要您想要找到的记录的id(例如 '4x12')。
$id = '4x12'; $obj = Vtiger::retrieve($id); // do someting with the result var_dump($obj);
更新
在CRM中更新记录的最简单方法是先检索记录。
$id = '4x12'; $obj = Vtiger::retrieve($id);
然后使用更新的数据更新对象。
$obj->result->field_name = 'Your new value'; $update = Vtiger::update($obj->result);
删除
要从CRM中删除记录,您需要您想要删除的记录的id(例如 '4x12')。
$id = '4x12'; $obj = Vtiger::retrieve($id); // do someting with the result var_dump($obj);
查找
此函数使用Vtiger查找API端点在Vtiger模块的多个列中搜索单个信息。此函数通常比搜索功能快得多。
$dataType = 'phone'; $phoneNumber = '1234567890'; $module = 'Leads'; $columns = ['phone', 'fax']; //Must be an array Vtiger::lookup($dataType, $phoneNumber, $module, $columns);
搜索
此函数是查询函数周围包装的SQL查询构建器。接受laravels QueryBuilder的实例。
$query = DB::table('Leads')->select('id', 'firstname', 'lastname')->where('firstname', 'John'); $obj = Vtiger::search('Leads', $query); //loop over result foreach($obj->result as $result) { // do something }
默认情况下,函数将引用但不转义您的输入,如果您希望您的数据不被引用,请将第三个参数设置为false,如下所示
$obj = Vtiger::search('Leads', $query, false);
请记住,Vtiger对其SQL查询功能有一些限制。您不能使用条件分组,例如 "where (firstname = 'John' AND 'lastname = 'Doe') OR (firstname = 'Jane' AND lastname = 'Smith') 将失败。
查询
要使用 查询操作,您首先需要创建一个SQL查询。
$query = "SELECT * FROM ModuleName;";
然后运行查询...
$obj = Vtiger::query($query); //loop over result foreach($obj->result as $result) { // do something }
描述
要在CRM中描述模块,请使用模块名称运行此命令
$moduleDescription = (Vtiger:describe("Contacts"))->result;
贡献
请在问题页面上报告您发现的所有问题。非常欢迎拉取请求。
作者
许可证
该项目受MIT许可证的许可 - 有关详细信息,请参阅LICENSE.md 文件。
贡献者 ✨
感谢这些出色的人 (emoji key)
Ahmad Syamim 💻 |
Clyde Cox 💻 📖 |
Christopher Pratt 💻 📖 |
adam-godfrey 💻 📖 |
本项目遵循all-contributors规范。欢迎各种形式的贡献!