Wir haben unsere API weiter ausgebaut. Eine API ist eine Schnittstelle, mit der Apps für Youthweb entwickelt werden können. Mit der Youthweb-API 0.5 ist es nun möglich, Steckbriefdaten eines Users zu ermitteln. In diesem Blogpost zeigen wir in einem kleinen Tutorial, wie das ganz einfach funktioniert.
Um die Verwendung der Youthweb-API zu vereinfachen, haben wir einen PHP-Client erstellt. Wenn du die Youthweb-API in einer anderen Programmiersprache wie Java oder C++ verwenden möchtest, musst du im Moment noch die HTTP-Requests selber erstellen. Wenn du einen eigenen Client geschrieben hast, dann lass es uns wissen. 
Installation
Den PHP-Client kannst du sehr einfach mittels Composer installieren:
composer require youthweb/php-youthweb-api
Als nächstes binden wir die autoload.php in einen PHP-Datei ein und erstellen uns einen Client.
<?php
require('vendor/autoload.php');
$client = new \Youthweb\Api\Client();
Der Client genügt bereits, um die Statistiken von Youthweb abzufragen.
$response = $client->getResource('stats')->show('account');
var_dump($response->get('data')->asArray(true));
Das ergibt die folgenden Daten:
array(3) {
'type' => string(5) "stats"
'id' => string(7) "account"
'attributes' => array(8) {
'user_total' => int(6283)
'user_total_female' => int(3210)
'user_total_male' => int(3034)
'user_online' => int(24)
'user_online_24h' => int(372)
'user_online_7d' => int(692)
'user_online_30d' => int(1126)
'userpics' => int(3570)
}
}
User-Token generieren
Um auf die Steckbriefdaten zugreifen zu können, benötigst du ein User-Token. Wenn du einen Youthweb-Account hast, dann kannst du dir das User-Token hier ganz einfach erstellen. Dieses übergibst du dann zusammen mit deinem Usernamen an den Client. (Das User-Token unten ist natürlich nur ein Beispiel und nicht gültig.
)
$client->setUserCredentials('Art4', 'lp4LExKDYug5ARkavckgkbRCzIzdd6Mo');
Damit sind alle Vorbereitungen getroffen, um auf Ressourcen der Youthweb-API zuzugreifen, die eine Autorisierung benötigen.
Steckbriefdaten ermitteln
Zum Testen wollen wir die Daten unseres Youthweb-Users abfragen. Dazu brauchen wir seine User-ID "10921", was du an der URL sehen kannst.
$response = $client->getResource('users')->show(10921);
var_dump($response->get('data')->asArray(true));
Das liefert uns alle Steckbriefdaten:
array(3) {
'type' => string(5) "users"
'id' => string(5) "10921"
'attributes' => array(15) {
'username' => string(8) "youthweb"
'first_name' => string(5) "youth"
'last_name' => string(3) "web"
'email' => NULL
'birthday' => string(10) "2004-02-01"
'created_at' => string(25) "2007-01-19T00:15:36+01:00"
'last_login' => string(25) "2015-10-10T19:39:23+02:00"
'zip' => string(5) "51588"
'city' => string(10) "Nümbrecht"
'description_jesus' => string(98) "Jesus ist der Grund warum es uns gibt und was uns verbindet - It's all about JESUS! #praiseTheLord"
'description_job' => string(20) "Social Media Manager"
'description_hobbies' => string(42) "Die beste Christliche Community sein! :gg:"
'description_motto' => string(23) "Don't worry - be happy!"
'picture_thumb_url' => string(57) "https://youthweb.net/img/steckbriefe/thumbnails/10921.jpg"
'picture_url' => string(53) "https://youthweb.net/img/steckbriefe/normal/10921.jpg"
}
}
Der Vollständigkeit halber zeige ich nochmal das gesamte Script am Stück.
<?php
require('vendor/autoload.php');
$client = new \Youthweb\Api\Client();
$client->setUserCredentials('Art4', 'lp4LExKDYug5ARkavckgkbRCzIzdd6Mo');
$response = $client->getResource('users')->show(10921);
var_dump($response->get('data')->asArray(true));
Abschluss-Bemerkungen
Wie du im Beispiel sehen kannst, steht dort statt einer Emailadresse nur "null". Das liegt daran, dass die Youthweb-API die Datenschutzeinstellungen der User berücksichtigt. Daten, die du auf der MyPage eines Users nicht sehen kannst, kannst du also auch nicht über die API erfragen.
Die Steckbriefdaten werden "roh" ausgeliefert, weshalb du dich um das Parsen von BBCode selber kümmern musst. Da wir nicht wissen, wie und wo du die Daten präsentieren möchtest, können wir dir diese Arbeit leider nicht abnehmen. Wir haben aber zu Vereinfachung unseren BBCode-Parser veröffentlicht, den wir selber einsetzen und den du gerne verwenden kannst.
Wie du auch sicher bemerkt hast, liefert die Youthweb-API noch nicht alle Steckbrief-Daten. Und auch die Abfrage von Forenposts, Pinnwände oder Mails ist noch nicht möglich. Wir möchten auch diese Bereiche stückweise in die Youthweb-API einbauen. Aber dazu brauchen wir deine Hilfe.
Was soll die Youthweb-API als nächstes können und mit welchen Daten würdest du gerne arbeiten? Schreib uns einen Kommentar oder noch besser: Erstelle einen Pull-Request auf Github.
Oder hast du bereits eine App oder einen Dienst für Youthweb entwickelt? Dann gib uns Bescheid und wir nehmen dich gerne in die Liste der User-Projekte auf.
Wir freuen uns auf deine Ideen. 
0 Kommentare