Cómo usar el API en UCRM

Este artículo explica el propósito de la API de la UCRM y demuestra su uso con un simple script de ejemplo.

Notas y requisitos: El uso de la API en la UCRM está dirigido a usuarios avanzados con conocimientos básicos de scripting, que tengan herramientas y servidores para desarrollar y ejecutar sus propios scripts de API. Para el usuario que no desea desarrollar sus propios guiones, se recomienda utilizar los complementos de la UCRM, se pueden cargar, configurar y utilizar en ningún conocimiento especial. 

Uso de la API en UCRM

La UCRM proporciona una API para importar, recuperar o actualizar la información almacenada en la UCRM. Como en los siguientes ejemplos se demuestra que se puede lograr usando API de UCRM:

– Importación por lotes de datos grandes, como por ejemplo importación de millas de clientes.

– Exportación por lotes, como facturas, pagos, etc.

– Actualiza las entidades existentes.

– La API también le permite administrar la configuración o la suspensión de los dispositivos de cualquier proveedor. 

Ejemplo de script

Creamos un script de ejemplo en PHP para mostrar cómo actualizar todos los clientes en UCRM. Este ejemplo funcionará en UCRM versión 2.2.2-beta1 y superior.

En el guión, observe una clase simple UcrmApiAccess que maneja la conexión y el procesamiento de comandos. No necesita cambiar esta clase. A continuación, verás cómo usar esta clase.

Primero, todos los clientes se recuperan de su UCRM.

Luego, cada cliente se procesa uno por uno. En este caso, hay 4 atributos de facturación establecidos en nulo para cada cliente.

Y, por supuesto, puede hacer lo que necesite: actualizar las direcciones de los clientes, establecer los impuestos predeterminados para un subconjunto de sus clientes, etc.

Para utilizar esta secuencia de comandos con su instancia de UCRM, cambie las constantes API_URL y APP_KEY a sus valores; estos valores los pueden encontrar en su UCRM en Sistema> Seguridad> Teclas de la aplicación. En ella puede generar y administrar claves. Hay 2 tipos de claves, en función de su permiso (leer, escribir). Las teclas con permiso de “escritura” también pueden leer.

<? php

clase UcrmApiAccess

{

    const API_URL = ‘https://ucrm-demo.ubnt.com/api/v1.0’;

    const APP_KEY = ‘5YbpCSto7ffl / P / veJ / GK3U7K7zH6ZoHil7j5dorerSN8o + rlJJq6X / uFGZQF2WL’;

    / **

     * @param string $ url

     * @param string $ method

     * @param array $ post

     *

     * @return array | null

     * /

    función estática pública doRequest ($ url, $ method = ‘GET’, $ post = [])

    {

        $ method = strtoupper ($ method);

        $ ch = curl_init ();

        curl_setopt

            $ ch

            CURLOPT_URL,

            sprintf

                ‘% s /% s’,

                auto :: API_URL,

                $ url

            )

        );

        curl_setopt ($ ch, CURLOPT_TIMEOUT, 30);

        curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);

        curl_setopt ($ ch, CURLOPT_HEADER, falso);

        curl_setopt

            $ ch

            CURLOPT_HTTPHEADER,

            El

                ‘Tipo de contenido: aplicación / json’,

                sprintf (‘X-Auth-App-App:% s’, self :: APP_KEY),

            ]

        );

        if ($ method === ‘POST’) {

            curl_setopt ($ ch, CURLOPT_POST, true);

        } elseif ($ method! == ‘GET’) {

            curl_setopt ($ ch, CURLOPT_CUSTOMREQUEST, $ method);

        }

        if (! empty ($ post)) {

            curl_setopt ($ ch, CURLOPT_POSTFIELDS, json_encode ($ post));

        }

        $ respuesta = curl_exec ($ ch);

        if (curl_errno ($ ch)! == 0) {

            echo sprintf (‘Error de curvatura:% s’, curl_error ($ ch)). PHP_EOL;

        }

        if (curl_getinfo ($ ch, CURLINFO_HTTP_CODE)> = 400) {

            echo sprintf (‘error de API:% s’, $ respuesta). PHP_EOL;

            $ respuesta = falso;

        }

        curl_close ($ ch);

        devuelve $ respuesta! == falso? json_decode ($ response, true): null;

    }

}

// Configuración de límite de tiempo ilimitado (la actualización de muchos clientes puede llevar mucho tiempo).

set_time_limit (0);

if (php_sapi_name ()! == ‘cli’) {

    echo ‘<pre>’;

}

// Obtener colección de todos los clientes.

$ clients = UcrmApiAccess :: doRequest (‘clients’)?: [];

echo sprintf (‘% d clientes encontrados’, cuenta ($ clientes)). PHP_EOL;

// Ir a través de todos los clientes y actualizarlos.

// En este caso, estamos actualizando todas las opciones de factura para usar los valores predeterminados del sistema.

foreach ($ clientes como $ cliente) {

    $ response = UcrmApiAccess :: doRequest (

        sprintf (‘clientes /% d’, $ cliente [‘id’]),

        ‘PARCHE’,

        El

            ‘sendInvoiceByPost’ => null,

            ‘invoiceMaturityDays’ => null,

            ‘stopServiceDue’ => null,

            ‘stopServiceDueDays’ => null,

        ]

    );

    if ($ response! == null) {

        echo sprintf (‘ID de cliente% d actualizado con éxito.’, $ cliente [‘id’]). PHP_EOL;

    } else {

        echo sprintf (‘Se ha producido un error al actualizar el ID de cliente% d.’, $ cliente [‘id’]). PHP_EOL;

    }

}

echo ‘Hecho’. . PHP_EOL;