sioweb/hrworks

0.1.2 2020-08-28 07:29 UTC

This package is auto-updated.

Last update: 2024-08-28 16:50:37 UTC


README

此客户端可用于连接到HRWorks API https://www.hrworks.de/produkt/api/

安装

composer req sioweb/hrworks

凭证

首先在根目录下创建或更新 .env-文件

HRWORKS_ACCESS_KEY="your_access_key"
HRWORKS_SECRET_KEY="your_secret_key"

示例

请确保您的管理员已为您提供了您想要使用的操作的正确权限。

安装后,您可以在 /web 目录下创建一个PHP文件。建议使用子目录,这样用户就不能访问像 /vendor/var/logs 这样的敏感目录,如果您使用它。

<?php
// /web/index.php
use Sioweb\Hrworks\Core\Client;

include '../vendor/autoload.php';

$Client = new Client();
// $Client->setRootDir('/var/www/folder');
$Client->init();
$Organisations = $Client->load('GetAllOrganizationUnits');

foreach ($Organisations['organizationUnits'] as $Organisation) {
    echo '<h3>' . $Organisation['organizationUnitName'] . ' (Unit id: ' . $Organisation['organizationUnitNumber'] . ')</h3>';
    echo '<pre>' . print_r($Client->load('GetPresentPersonsOfOrganizationUnit', [
        'organizationUnitNumber' => $Organisation['organizationUnitNumber']
    ]), true) . '</pre>';
}

客户端

Client::load(String $Target, Array Payload = NULL)

加载至少需要一个目标。对于像 GetPresentPersonsOfOrganizationUnit 这样的某些操作,您需要添加作为数组的负载

// Client::load(String $Target, Array Payload = NULL)

$Client->load('GetPresentPersonsOfOrganizationUnit', [
    'organizationUnitNumber' => 1
])

Client::setRootDir(String $RootPath)

客户端从根目录加载 .env,默认为 $_SERVER['DOCUMENT_ROOT'] . '/../'。如果您将脚本安装在 / 而不是 /web,您需要在 $Client->init() 之前运行类似 $Client->setRootDir($_SERVER['DOCUMENT_ROOT']); 的操作。

$_SERVER['DOCUMENT_ROOT'] . '/../' 可能输出例如: /var/www/html/yourdomain/web/../

Postman

您还可以使用此包创建 Postman 导入。您只需使用 Postman::load 代替 Client::load。

注意: 目前Postman不会发送正确的签名。这可能在未来某个时候会工作。

{"type":"InvalidSignatureError","errorCode":403,"errorMessage":"The signature included in your request does not match the signature we calculated."}

请记住,您必须每15分钟更新一次日期和x-hrworks-date。