clystnet/vtiger

此包已被弃用且不再维护。没有建议的替代包。

运行 Vtiger Webservice API 的包

维护者

详细信息

github.com/Clystnet/Vtiger

主页

源码

安装次数: 2,025

依赖者: 0

建议者: 0

安全: 0

星标: 3

关注者: 3

分支: 7

类型:laravel

1.6.1 2020-07-31 08:07 UTC

README

在 Clystnet,我们不再维护此开源版本的包。但是,我们仍然维护我们内部版本的此包,您可以联系 sales@clystnet.com 了解使用方法。

Vtiger (Laravel 5 包)

All Contributors

使用 Laravel 在以下操作中使用 Vtiger webservice (REST) API。

  • 创建
  • 检索
  • 更新
  • 删除
  • 搜索
  • 查询
  • 描述

查看 第三方应用集成 (REST APIs)

安装、配置和使用

安装

  1. 要安装 Vtiger 包到您的 Laravel 项目中,只需在终端运行 composer require 命令

    composer require "clystnet/vtiger ^1.4"
    

    如果您使用 Laravel >= 5.5,则无需执行步骤 2 和 3。

  2. 然后在您的 config/app.php 中,将以下内容添加到 providers 数组中

    Clystnet\Vtiger\VtigerServiceProvider::class,
    
  3. 在相同的 config/app.php 中,将以下内容添加到 aliases 数组中

    'Vtiger' => Clystnet\Vtiger\Facades\Vtiger::class,
    
  4. 发布配置文件

    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规范。欢迎各种形式的贡献!