onbalt/servicedeskplus-api

Laravel与ManageEngine ServiceDesk Plus API集成

v1.2 2019-08-13 16:01 UTC

This package is auto-updated.

Last update: 2024-09-15 00:12:01 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License composer.lock available

安装

这是一个Laravel包,您可以通过Composer安装它。在您的项目目录中运行以下终端命令

composer require onbalt/servicedeskplus-api

Laravel配置

在Laravel 5.5以下版本中,您需要在config/app.php配置文件中调用此包服务。为此,在app.php中的providers数组中添加此行

Onbalt\ServicedeskplusApi\ServicedeskplusApiServiceProvider::class,

在Laravel 5.5以下版本中使用外观,您需要在app.php中的aliases数组中添加此行

'ServicedeskplusApi' => Onbalt\ServicedeskplusApi\Facades\ServicedeskplusApi::class,

现在在终端中运行此命令以发布此包配置

php artisan vendor:publish --tag=servicedeskplus-api-config

发布您的配置文件后,打开config/servicedeskplus-api.php并填写您的SDP URL和技术员密钥

return [
	'api_base_url' => env('SDPAPI_BASE_URL', 'http://helpdesk.local/api/v3/'),
	'technician_key' => env('SDPAPI_TECHNICIAN_KEY', 'key'),
	'api_version' => env('SDPAPI_VERSION', '3'),
	'api_v1_format' => env('SDPAPI_V1_FORMAT', 'json'),
	'timeout' => 60,
];

您还可以在.env文件中添加配置参数

SDPAPI_BASE_URL=http://helpdesk.local/api/v3/
SDPAPI_TECHNICIAN_KEY=YOUR_TECHNICIAN_KEY

Laravel使用

use Onbalt\ServicedeskplusApi\Facades\ServicedeskplusApi;

// View Request
$response = ServicedeskplusApi::get('requests/111');
var_dump($response->request);

常用用法

创建并使用ServicedeskplusApi类的实例而不是外观

require 'vendor/autoload.php';

use Onbalt\ServicedeskplusApi\ServicedeskplusApi;

$config = [
	'api_base_url' => 'http://helpdesk.local/api/v3/',
	'technician_key' => 'YOUR_TECHNICIAN_KEY',
	'api_version' => '3',
	'api_v1_format' => 'json',
	'timeout' => 60,
];

$sdpApi = new ServicedeskplusApi($config);

// View Request
$response = $sdpApi->get('requests/111');
var_dump($response->request);

示例

查看请求

查看:http://ui.servicedeskplus.com/APIDocs3/index.html#view-request

$response = ServicedeskplusApi::get('requests/111');
var_dump($response);
object(stdClass)# (2) {
  ["request"]=>
  object(stdClass)# (50) {
    //<all request properties in V3 format>
    //@see: http://ui.servicedeskplus.com/APIDocs3/index.html#request8
  }
  ["response_status"]=>
  object(stdClass)# (2) {
    ["status_code"]=>
    int(2000)
    ["status"]=>
    string(7) "success"
  }
}

查看所有请求

查看:http://ui.servicedeskplus.com/APIDocs3/index.html#view-all-requests

$inputData = ServicedeskplusApi::prepareJsonInputData([
	'list_info' => [ //@see: http://ui.servicedeskplus.com/APIDocs3/index.html#list-info
		'row_count' => 10, //max 100
		'start_index' => 1,
		'sort_field' => 'id',
		'sort_order' => 'asc',
		'get_total_count' => true,
		'search_criteria' => [
			[
				'field' => 'site.name',
				'condition' => 'eq',
				'value' => 'MyCompany',
			],
		],
	]
]);
$response = ServicedeskplusApi::get('requests', $inputData);
var_dump($response);
object(stdClass)# (3) {
  ["requests"]=>
  array(10) {
    [0]=>
    object(stdClass)# (15) {
      //<base request properties in V3 format>
      //@see: http://ui.servicedeskplus.com/APIDocs3/index.html#view-all-requests
    }
    [1]=>
    //<...>
  }
  ["response_status"]=>
  object(stdClass)# (2) {
    ["status_code"]=>
    int(2000)
    ["status"]=>
    string(7) "success"
  },
  ["list_info"]=>
  object(stdClass)# (8) {
    ["has_more_rows"]=>
    bool(true)
    ["get_total_count"]=>
    string(7) "true"
    ["total_count"]=>
    int(111)
    //<other source properties from $inputData's 'list_info' array>
  }
}

添加新请求

查看:http://ui.servicedeskplus.com/APIDocs3/index.html#add-request

$inputData = ServicedeskplusApi::prepareJsonInputData([
	'request' => [
		'subject' => 'Subject of the request',
		'description' => 'HTML description of the request. Contains formatted text.',
		'requester' => [
			'name' => 'Dummy Requester',
			'email_id' => 'dummy.requester@dummy.com',
		],
		'site' => [
			'name' => 'Requester Company',
		],
		'impact' => [
			'name' => 'High',
		],
		'urgency' => [
			'name' => 'High',
		],
		'level' => [
			'name' => 'Tier 1',
		],
		'mode' => [
			'name' => 'Web Form',
		],
	]
]);
$workorder = ServicedeskplusApi::post('requests', null, $inputData);
var_dump($workorder->request->id);
//int(112)

添加附件

查看:附件 / 在http://beta.servicedeskplusmsp.com/SetUpWizard.do?forwardTo=apidoc&username=demo&password=demo添加附件

$inputData = ServicedeskplusApi::prepareJsonInputData([
	'attachment' => [
		'request' => [
			'id' => 112,
		],
	]
]);
$filesData['multipart'] = [[
	'name' => 'file0',
	'contents' => fopen('/full/path/to/file.ext', 'r'),
	'filename' => 'file.ext',
]];
$response = ServicedeskplusApi::post('attachments', $inputData, $filesData);
var_dump($response);
object(stdClass)# (2) {
  ["response_status"]=>
  object(stdClass)# (2) {
    ["status_code"]=>
    int(2000)
    ["status"]=>
    string(7) "success"
  }
  ["attachment"]=>
  object(stdClass)# (4) {
    ["id"]=>
    int(101)
    ["file_name"]=>
    string(7) "file.ext"
    ["content_url"]=>
    string(7) "/api/v3/attachments/101"
    ["size"]=>
    string(7) "2.42KB"
  }
}

致谢

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。