zipline/egestor-sdk

用于访问eGestor API的SDK

1.0.1 2017-07-25 19:17 UTC

This package is not auto-updated.

Last update: 2024-09-20 21:06:14 UTC


README

简化访问eGestor API的SDK

安装

使用Composer进行安装

# Instalando o Composer
curl -sS https://getcomposer.org/installer | php

# Instalando o zipline/egestor-sdk como uma dependência do projeto
php composer.phar require zipline/egestor-sdk

当SDK安装完成后,需要加载由Composer生成的autoloader(负责加载所有namespaces的文件)。

将其添加到您的文件中

require 'vendor/autoload.php';

认证您的应用程序

主要存在两种认证方式

访问码

用户将被重定向到包含code参数的您的应用程序URL,该参数应用于与API开始认证。

$code = $_GET['code'];

$api = new Zipline\eGestor\API([
  'clientId' => 'id_da_aplicacao',
  'clientSecret' => 'segredo',
  'redirectUri' => 'uri_cadastrada'
]);

$tokens = $api->authByCode($code);

作为响应,API将发送三个令牌:access_tokenrefresh_tokenpersonal_token

对于后续访问,请使用personal_token来请求新的access_tokenrefresh_token

SDK提供了一个方法来返回请求访问链接的应用程序

$api = new Zipline\eGestor\API([
  'clientId' => 'id_da_aplicacao',
  'clientSecret' => 'segredo',
  'redirectUri' => 'uri_cadastrada'
]);

$url = $api->getAuthUri();

每次用户通过重定向链接访问您的应用程序时,系统都会生成一个新的code

个人令牌

完成首次认证后,可以使用收到的personalToken请求新的access_token

personalToken通过eGestor用户识别您的应用程序。

$api = new Zipline\eGestor\API(['personalToken' => PERSONAL_TOKEN]);

访问API

完成认证后,您可以访问API。可用的方法有getpostputdelete。尽可能返回格式为Array的结果。

require 'vendor/autoload.php';

$api = new Zipline\eGestor\API(['personalToken' => PERSONAL_TOKEN]);

$contatos = $api->get('contatos');
var_dump($contatos);
// Resposta:
// array(10) {
//   ["total"] => int(1)
//   ["per_page"]=> int(50)
//   ["current_page"]=>  int(1)
//   ["last_page"]=>  int(1)
//   ["next_page_url"]=>  NULL
//   ["prev_page_url"]=>  NULL
//   ["from"]=>   int(1)
//   ["to"]=>  int(50)
//   ["data"]=> array(1) {
//     [0]=> array(8) {
//       ["codigo"] =>  int(1)
//       ["nome"]   =>  string(5) "Paulo"
//       ["tipo"]   =>  array(1) {
//           [0]=>  string(7) "cliente"
//       }
//       ["emails"] =>  array(1) {
//         [0]=> string(17) "paulo@example.com"
//       }
//       ["fones"]  =>  array(0) {}
//       ["cidade"] =>  string(0) ""
//       ["uf"]     =>  string(0) ""
//       ["tags"]   =>  array(1) {
//         [0]=> string(11) "cliente-vip"
//       }
//     }
//   }
//   ["next_page"]=> NULL
// }

API对象允许访问上次请求的数据

$remaining = $api->getRemaining();//número que requests até atingir o limite

$body = $api->getBody();//corpo da resposta sem o parser

示例

require 'vendor/autoload.php';

$api = new Zipline\eGestor\API(['personalToken' => PERSONAL_TOKEN]);

//Novo contato
$contato = $api->post("contatos", [
    'nome' => 'Zipline',
    'tipo' => ['fornecedor']
]);
$codContato = $contato['codigo'];

//Editando
$response = $api->put("contatos/$codContato", [
    'nome' => 'eGestor',
]);

//Removendo
$response = $api->delete("contatos/$codContato");

//Pesquisando
$response = $api->get("contatos", [
    'filtro' => 'eGestor',
]);
require 'vendor/autoload.php';
try {
  $api = new Zipline\eGestor\API(['personalToken' => PERSONAL_TOKEN]);

  $contatos = $api->get("contatos");

  foreach($contato as $contatos['data']) {
    echo $contato['codigo'] . ' - ' . $contato['nome'] . "\n";
  }

} catch(Zipline\Exception\InvalidTokenException $e) {
  echo "Não foi possível autenticar! Motivo:" . $e->getMessage() . "\n";
} catch(Exception $e) {
  echo "Requisição não poder realizada! Motivo:" . $e->getMessage() . "\n";
}
require 'vendor/autoload.php';
try {
  $api = new Zipline\eGestor\API([
  'app_id' => MEU_APP_ID,
  'app_secret' => MEU_APP_SECRET
  'personalToken' => PERSONAL_TOKEN)
  ]);

  $contatos = $api->get("contatos");

  foreach($contato as $contatos['data']) {
    echo $contato['codigo'] . ' - ' . $contato['nome'] . "\n";
  }

} catch(Zipline\Exception\InvalidTokenException $e) {
  echo "Não foi possível autenticar! Motivo:" . $e->getMessage() . "\n";
} catch(Exception $e) {
  echo "Requisição não poder realizada! Motivo:" . $e->getMessage() . "\n";
}

异常

  • Zipline\Exception\InvalidTokenException:无效凭证;