yooco-apps / sdk
Yooco-Apps SDK: Communities verbinden, Benachrichtigungen senden, Punkte buchen und Themes freischalten
Requires
- php: >=8.1
- ext-curl: *
- ext-json: *
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Verbindet Communities mit deiner Anwendung. Über die API von Yooco-Apps sendet es Benachrichtigungen, bucht Punkte und schaltet Themes frei. Braucht PHP 8.1 oder neuer mit der Erweiterung curl.
Die vollständige Anleitung steht unter https://yooco-apps.de/entwickler.
Installieren
composer require yooco-apps/sdk
Community verbinden
use YoocoApps\OAuth;
$oauth = new OAuth([
'clientId' => 'app_7Hf2kQ9xVb3mN8pR',
'clientSecret' => getenv('YOOCO_CLIENT_SECRET'),
'redirectUri' => 'https://pixelwerk.beispiel.de/yooco/callback',
]);
// 1. Admin zur Freigabe schicken, Verifier in der Sitzung merken
session_start();
[$url, $_SESSION['yooco_verifier']] = $oauth->authorizationUrl();
// 2. Nach der Rückkehr den Code gegen den Token tauschen
$result = $oauth->exchangeCode($_GET['code'], $_SESSION['yooco_verifier']);
// $result->accessToken, $result->community
Den Token speicherst du zur Community auf deinem Server. Er gilt, bis der Admin die Verbindung trennt. Behandle ihn wie ein Passwort und gib ihn nie an den Browser weiter.
API aufrufen
use YoocoApps\YoocoAppsConnection;
use YoocoApps\YoocoAppsException;
$yoocoApps = new YoocoAppsConnection($token);
$yoocoApps->notifications->send(['type' => 'nt_8fK2xQ7mLp4R', 'usernames' => ['Zhenya']]);
$yoocoApps->notificationTypes->list();
$yoocoApps->notificationTypes->update(['types' => ['nt_8fK2xQ7mLp4R'], 'available' => true]);
$yoocoApps->notificationTypes->update(['types' => ['nt_8fK2xQ7mLp4R'], 'enabled' => false]);
$yoocoApps->points->info();
$yoocoApps->points->change(['application' => 'apl_Fw7kQ2mLp4Rx', 'usernames' => ['Zhenya'], 'change' => 5]);
$yoocoApps->points->set(['application' => 'apl_Fw7kQ2mLp4Rx', 'usernames' => ['Zhenya'], 'points' => 100]);
$yoocoApps->points->balance(['usernames' => ['Zhenya', 'Kurt']]);
$yoocoApps->themes->list();
$yoocoApps->themes->unlock(['theme' => '3f0c2a5e-8b1d-4c7a-9e2f-6d4b1a7c9e03', 'usernames' => ['Zhenya'], 'application' => 'apl_Fw7kQ2mLp4Rx', 'reason' => 'Für den ersten Platz im Herbstquiz.']);
Jeder Aufruf gibt die Antwort der API als Objekt zurück. Mit 'allowPartial' => true führt die API aus, was klappt. Den Rest meldet sie in results. Bei allen anderen Fehlern wirft das SDK YoocoAppsException mit status, error, getMessage() und bei zu vielen Aufrufen retryAfter in Sekunden.
Umstieg von LiNetConnect
$result = $oauth->exchangeCommunityKey($oldCommunityKey);