PHPackages                             optigov/optigov-api-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. optigov/optigov-api-php

AbandonedArchivedLibrary[API Development](/categories/api)

optigov/optigov-api-php
=======================

The optiGov API PHP Client Library for V1 version of the API

v3.0.8(3y ago)123PHPPHP &gt;=8.0

Since Dec 27Pushed 3y agoCompare

[ Source](https://github.com/optiGov/optigov-api-php)[ Packagist](https://packagist.org/packages/optigov/optigov-api-php)[ Docs](https://github.com/optigov/optigov-api-php)[ RSS](/packages/optigov-optigov-api-php/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (10)Dependencies (1)Versions (20)Used By (0)

optigov-api-php
===============

[](#optigov-api-php)

Für weitere Informationen, siehe [optiGov-Dokumentation](https://doku.optigov.de).

Installation
------------

[](#installation)

```
composer require optigov/optigov-api-php
```

Schnellstart
------------

[](#schnellstart)

### Instanziierung

[](#instanziierung)

Ein optiGov-Client kann über die `Client`-Klasse intantiiert werden. Dabei werden die Urls des API-Endpunkts, des OAuth2.0-Auth-Endpunkts und des OAuth2.0-Token-Endpunkts benötigt.

```
$optiGov = new \OptiGov\Client(API_ENDPUNKT, OAUTH_AUTH_ENDPUNKT, OAUTH_TOKEN_ENDPUNKT);
```

### Abfragen

[](#abfragen)

Die Abfragen innerhalb der Bibliothek teilen sich in sogenannte `Responsibilities` auf. Diese enthalten verschiedene Verantwortlichekeiten - so ist z.B. die `GlobalResponsibility` für alle allgemeinen, von einer Verwaltung losgelösten Anfragen zuständig. Die `VerwaltungResponsibility` handelt alle Abfragen bzgl. aller Einträge einer Verwaltung ab - und die `BuergerResponsibility` übernimmt alle Funktionen, welche eine Bürgerauthorisierung benötigen.

#### Die GlobalResponsibility

[](#die-globalresponsibility)

Eine Dienstleistung, oder nur ihren Namen abfragen:

```
$optiGov->dienstleistung($id);
$optiGov->dienstleistungName($id);
```

Eine Einrichtung, oder nur ihren Namen abfragen:

```
$optiGov->einrichtung($id);
$optiGov->einrichtungName($id);
```

Einen Mitarbeiter, oder nur seinen / ihren Namen abfragen:

```
$optiGov->mitarbeiter($id);
$optiGov->mitarbeiterName($id);
```

Um einen Bürger einzuloggen verwendet diese Bibliothek den von optiGov bereitgestellten OAuth2.0 Authorization-Flow mit PKCE. Dieser wird in zwei Schritten durchgeführt. Als Erstes wird eine URL zur Authorisierung für die Weiterleitung erzeugt:

```
// 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"];
```

Nachdem nun der Bürger eingeloggt ist und an die `OPTIGOV_OAUTH_CLIEBNT_REDIRECT_URL` der Authorization-Code gesendet wurde, kann darüber das Access- und Refresh-Token wie folgt abgefragt werden:

```
// 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,
);
```

#### Die VerwaltungResponsibility

[](#die-verwaltungresponsibility)

Alle Dienstleistungen abfragen:

```
$optiGov->verwaltung($id)->alleDienstleistungen();
```

Alle Themenfelder abfragen:

```
$optiGov->verwaltung($id)->alleThemenfelder();
```

Alle Einrichtungen abfragen:

```
$optiGov->verwaltung($id)->alleEinrichtungen();
```

Alle Mitarbeiter abfragen:

```
$optiGov->verwaltung($id)->alleMitarbeiter();
```

#### Die BuergerResponsibility

[](#die-buergerresponsibility)

Alle Anträge eines Bürgers abfragen:

```
$optiGov->buerger(REFRESH_TOKEN)->alleAntraege();
```

Alle Termine eines Bürgers abfragen:

```
$optiGov->buerger(REFRESH_TOKEN)->alleTermine();
```

Alle Chats eines Bürgers abfragen:

```
$optiGov->buerger(REFRESH_TOKEN)->alleChats();
```

Einen Chat eines Bürgers abfragen:

```
$optiGov->buerger(REFRESH_TOKEN)->chat($id);
```

Alle Daten eines Bürgers abfragen:

```
$optiGov->buerger(REFRESH_TOKEN)->daten();
```

Einen Antrag mit vorbefüllten Daten stellen:

```
$optiGov->buerger(REFRESH_TOKEN)->stelleAntrag(
    FORMULAR_ID,
    SUCCESS_REDIRECT_URL,
    [
        "AS.Daten.Parkzone" => "Zone F",
        "cancelUrl" => CANCEL_REDIRECT_URL,
    ]
);
```

Eine Datei hochladen:

```
$optiGov->buerger(REFRESH_TOKEN)->dateiHochladen($pfad, $name, $bezeichner);
```

Alle Daten eines Bürgers löschen:

```
$optiGov->buerger(REFRESH_TOKEN)->loescheBuerger();
```

Einen neuen Chat erstellen:

```
$optiGov->buerger(REFRESH_TOKEN)->erstelleChat($name, $mitarbeiterId);
```

Eine neue Nachricht senden:

```
$optiGov->buerger(REFRESH_TOKEN)->sendeNachricht($inhalt, $chatId, dateien: []);
```

Tests und Beteiligung
---------------------

[](#tests-und-beteiligung)

### Unit-Tests

[](#unit-tests)

**Hinweis:** Die Unit-Tests benötigen die Datei `tests/bootstrap.php`, welche notwenige (folgende) Konstanten definiert:

```
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
```

Ausführen aller Tests:

```
composer run-script test

```

### Beteiligung

[](#beteiligung)

Für Beteiligung an der Entwicklung der Bibliothek wenden Sie sich bitte an .

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~11 days

Total

19

Last Release

1404d ago

Major Versions

v0.1.9 → v3.0.02022-04-20

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/52662462?v=4)[joonlabs](/maintainers/joonlabs)[@joonlabs](https://github.com/joonlabs)

---

Top Contributors

[![joonlabs](https://avatars.githubusercontent.com/u/52662462?v=4)](https://github.com/joonlabs "joonlabs (32 commits)")

---

Tags

apigovernmentopen-source

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/optigov-optigov-api-php/health.svg)

```
[![Health](https://phpackages.com/badges/optigov-optigov-api-php/health.svg)](https://phpackages.com/packages/optigov-optigov-api-php)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
