optigov / optigov-api-php
此包已被废弃,不再维护。没有建议的替代包。
关于此包最新版本(v3.0.8)没有可用的许可证信息。
optiGov API PHP 客户端库,用于 V1 版本的 API
v3.0.8
2022-07-12 21:46 UTC
Requires
- php: >=8.0
- ext-curl: *
Requires (Dev)
- phpunit/phpunit: ^9.5.11
README
有关更多信息,请参阅 optiGov 文档。
安装
composer require optigov/optigov-api-php
快速入门
实例化
optiGov 客户端可以通过 Client
类进行实例化。在此过程中需要 API 端点 URL、OAuth2.0 认证端点 URL 和 OAuth2.0 令牌端点 URL。
$optiGov = new \OptiGov\Client(API_ENDPUNKT, OAUTH_AUTH_ENDPUNKT, OAUTH_TOKEN_ENDPUNKT);
查询
库内的查询分为所谓的 Responsibilities
。这些包含各种责任 - 例如,GlobalResponsibility
负责所有与管理部门无关的通用查询。而 VerwaltungResponsibility
负责处理所有关于管理部门条目的查询,而 BuergerResponsibility
承担所有需要公民授权的功能。
全局责任
查询一个服务,或仅查询其名称
$optiGov->dienstleistung($id); $optiGov->dienstleistungName($id);
查询一个机构,或仅查询其名称
$optiGov->einrichtung($id); $optiGov->einrichtungName($id);
查询一个员工,或仅查询其/她的名称
$optiGov->mitarbeiter($id); $optiGov->mitarbeiterName($id);
为了登录公民,此库使用 optiGov 提供的带有 PKCE 的 OAuth2.0 授权流程。这分为两个步骤。首先生成一个用于重定向的授权 URL
// get data needed for OAuth2.0 authorization $oauthInformation = $optiGov->oauthAuthorize( OPTIGOV_OAUTH_CLIENT_ID, OPTIGOV_OAUTH_CLIEBNT_REDIRECT_URL, ); // get state and code verifier and authorization url $state = $oauthInformation["state"]; $codeVerifier = $oauthInformation["code_verifier"]; $url = $oauthInformation["url"];
公民登录后,将授权码发送到 OPTIGOV_OAUTH_CLIENT_REDIRECT_URL
,然后可以按照以下方式查询 Access 和 Refresh 令牌
// get tokens form oauth token endpoint $tokens = $optiGov->oauthGetTokens( $codeVerifier, // code verifier from step one $_GET["code"], // code from the get parameters OPTIGOV_OAUTH_CLIENT_ID, OPTIGOV_OAUTH_CLIEBNT_REDIRECT_URL, );
管理部门责任
查询所有服务
$optiGov->verwaltung($id)->alleDienstleistungen();
查询所有主题领域
$optiGov->verwaltung($id)->alleThemenfelder();
查询所有机构
$optiGov->verwaltung($id)->alleEinrichtungen();
查询所有员工
$optiGov->verwaltung($id)->alleMitarbeiter();
公民责任
查询公民的所有申请
$optiGov->buerger(REFRESH_TOKEN)->alleAntraege();
查询公民的所有预约
$optiGov->buerger(REFRESH_TOKEN)->alleTermine();
查询公民的所有聊天
$optiGov->buerger(REFRESH_TOKEN)->alleChats();
查询公民的一个聊天
$optiGov->buerger(REFRESH_TOKEN)->chat($id);
查询公民的所有数据
$optiGov->buerger(REFRESH_TOKEN)->daten();
提交一个预填充数据的申请
$optiGov->buerger(REFRESH_TOKEN)->stelleAntrag( FORMULAR_ID, SUCCESS_REDIRECT_URL, [ "AS.Daten.Parkzone" => "Zone F", "cancelUrl" => CANCEL_REDIRECT_URL, ] );
上传一个文件
$optiGov->buerger(REFRESH_TOKEN)->dateiHochladen($pfad, $name, $bezeichner);
删除公民的所有数据
$optiGov->buerger(REFRESH_TOKEN)->loescheBuerger();
创建一个新的聊天
$optiGov->buerger(REFRESH_TOKEN)->erstelleChat($name, $mitarbeiterId);
发送一条新消息
$optiGov->buerger(REFRESH_TOKEN)->sendeNachricht($inhalt, $chatId, dateien: []);
测试和参与
单元测试
注意:单元测试需要文件 tests/bootstrap.php
,它定义了以下必要的常量
const BACKEND_URL = "https://..."; // API-Endpunkt const REFRESH_TOKEN = "..."; // Refresh-Token eines Bürgers const TEST_CHAT_ID = -1; // ID eines Chats, welcher dem Bürger gehört const TEST_ANTRAG_FORMULAR_ID = -1; // ID eines Antrags, welcher im Namen des Bürgers gestellt wird const TEST_ANTRAG_WEITERLEITUNG_URL = "https://..."; // Ziel-URL für erfolgreiche Weiterleitung nach Antragdurchführung const TEST_ANTRAG_PARAMETER = []; // Parameter, welche dem Antrag übergeben werden
执行所有测试
composer run-script test
参与
如有兴趣参与库的开发,请联系 hallo@optigov.de。