Youthweb-Blog

Zurück zur Übersicht

Tutorial zur Youthweb-API mit Steckbriefdaten

verfasst von Art4 04.07.2016 13:24:04

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

Vergebung

Jeremia3134

Kennst du das auch? Zwar bin ich ein lebendiges Kind Gottes, aber wie oft scheitere ich an meinen festgefahrenen Gewohnheiten und Verhaltensweisen. Wie oft bin ich wieder einmal niedergeschlagen, weil ich mich an Gott versündigt habe. Wie oft habe ich M…

4 Kommentare