info@yenlo.com
deu
Menu
WSO2 API 7 min

So verbindet man den Micro Integrator mit der Mastodon-API – Teil 1

In diesem Blog werde ich Ihnen zeigen, wie Sie eine Verbindung zu diesem Dienst herstellen können, indem Sie zuerst eine API verwenden und dann einen Konnektor daraus machen.

Rob Blaauboer
Rob Blaauboer
Integration Consultant & WSO2 Trainer
API call fuer verbinden den Micro Integrator mit der Mastodon API

Dienste wie Twitter gibt es schon seit vielen Jahren. Einige Menschen nutzen es nur, um das Geschehen in den sozialen Medien zu verfolgen, aber für einige Unternehmen ist es ein Kommunikationsmittel zwischen ihnen und ihren Kunden. Das bedeutet, dass idealerweise ein Twitter-Stream Teil der IT-Landschaft wird.

Glücklicherweise verfügt Twitter über eine API, über die Sie eine Verbindung herstellen können. So können Sie die für Sie interessanten Nachrichten abrufen oder Nachrichten auf Twitter posten. Dafür müssen Sie nur herausfinden, wie Sie eine Verbindung zu Twitter herstellen. Außerdem müssen Sie die API studieren, um zu ermitteln, welche Funktionen Sie benötigen.

WSO2 verwendet zur Vereinfachung dieser Arbeit Konnektoren. Es gibt bereits seit einigen Jahren einen Twitter-Konnektor, den man einfach zu seinem Micro Integrator hinzufügen kann, so dass man einen Vorsprung hat und das Rad nicht neu erfinden muss. Die jüngste Übernahme von Twitter durch Elon Musk hat für Aufruhr gesorgt und das Interesse an anderen Microblogging-Diensten wie zum Beispiel Mastodon gesteigert.

In diesem Blog werde ich Ihnen zeigen, wie Sie eine Verbindung zu diesem Dienst herstellen können, indem Sie zuerst eine API verwenden und dann einen Konnektor daraus machen. Zum Zeitpunkt der Erstellung dieses Blogs gibt es keinen Mastodon-Konnektor im WSO2-Connector-Store. Die meisten von ihnen werden von WSO2 geschrieben, einige aber auch von den Anbietern selbst oder anderen Personen, die ein Interesse an der Erstellung des Konnektors haben.

Sie werden als Erstes feststellen, wie viel Arbeit in die Entwicklung der Mastodon-API und die Erstellung eines umfangreichen Konnektors fließt, der alles abdeckt, was Mastodon im Hinblick auf die API bietet.

Neues Konto erstellen

Zuerst brauchen Sie natürlich ein Konto bei Mastodon. Ich habe das Yenlo-Konto auf einem niederländischen Server erstellt. Wo Sie das Konto erstellen, spielt keine Rolle. Klicken Sie einfach auf einen Server oder wählen Sie einen aus, der sich nahe Ihrem Standort befindet.

Verbindung herstellen

Nach eingehender Recherche in der Dokumentation stellen wir fest, dass die Mastodon-API mit oAuth2 gesichert ist. Dabei handelt es sich um eine bewährte Standardmethode, mit der sichergestellt wird, dass der Nutzer der API der tatsächliche und vorgesehene Nutzer ist und kein Betrüger. Im API-Manager haben wir dasselbe Konzept verwendet. Wir erstellen eine Anwendung, die uns eine Client-ID und ein Client-Geheimnis bereitstellt. Daraus können wir ein oAuth2-Token erstellen, das uns Zugriff auf die API gewährt.

Als Nächstes werde ich Postman für die Erstellung der Anwendung und das Abrufen der Client-ID, des Client-Geheimnisses und des Tokens verwenden.

Die API wird unter /api/v1/apps auf dem Mastodon-Server bereitgestellt – in meinem Fall mastodon.nl. Die anzugebenden Parameter für die Formulardaten sind der Name des Kunden und die Weiterleitungs-URLs. Das sind die einzigen beiden Pflichtfelder. Die Scopes können weggelassen werden, allerdings erhalten Sie dann nur Lesezugriff. Wenn alles korrekt ist, werden eine ID, der Name, die Website, die Weiterleitungs-URLs, die Client-ID, das Client-Geheimnis und der Vapid-Schlüssel übermittelt. Sie können den Aufruf im Screenshot unten sehen.

Mit diesen Daten können wir ein Token abrufen und mit der Abfrage der API beginnen, indem wir das Token im Autorisierungs-Header für die beiden nachfolgenden API-Aufrufe verwenden.

Verbinden den Micro Integrator mit der Mastodon API

Wir fügen dem Aufruf den Schlüssel als Autorisierung hinzu und suchen nach dem gerade erstellten Konto, um die ID zu erhalten und mit der Veröffentlichung unseres ersten Toots zu beginnen.

Client ID Micro integrator verbinden met de Mastodon API

Wir notieren uns die ID und schauen in der Dokumentation nach, wie wir im Namen des Yenlo-Nutzers etwas posten können. Wir können natürlich immer die herkömmliche Benutzeroberfläche des Browsers oder der Anwendung verwenden, um etwas zu posten.

Postman Micro integrator verbinden met de Mastodon API

Wir begannen mit der Erstellung einer Anwendung, die uns eine Client-ID und das Client-Geheimnis übermittelte. Dadurch können wir öffentliche Informationen abrufen; d. h. sie sind nicht an einen bestimmten Nutzer gebunden. Wenn wir etwas im Namen unseres Nutzers (in unserem Fall natürlich der Yenlo-Nutzer) posten möchten, benötigen wir ein anderes Token. Aus der Dokumentation geht nicht klar hervor, wie das funktioniert, aber mit Hilfe der Admins von mastodon.nl habe ich herausgefunden, dass dafür ein Code Grant Type erforderlich ist. Dieser ist natürlich ein zweistufiger OAUTH2 Grant Type, bei dem man sich ebenfalls anmelden muss.

Im ersten Schritt erfolgt eine GET-Anforderung an die autorisierte URL mit den Parametern Client-ID, Scope, Weiterleitungs-URL und dem Antworttyp. Das sieht in etwa so aus [client ID is removed]

https://mastodon.nl/oauth/authorize?client_id=[client-id]&scope=read+write&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code

Wenn Sie das in einen Browser einfügen, wird der folgende Bildschirm angezeigt. Da wir bereits bei Mastodon angemeldet sind, können wir einfach autorisieren und erhalten unseren neuen Code auf dem nachfolgenden Bildschirm.

Zulassung verbinden den Micro Integrator mit der Mastodon API

Dieser Code ist ein Zwischenschritt – im nächsten Schritt tauschen wir ihn gegen ein echtes Token.

API call fuer verbinden den Micro Integrator mit der Mastodon API

Dazu müssen wir eine POST-Anfrage an den oauth2-Server mit einer Reihe von Parametern wie Client-ID, Client-Geheimnis, Weiterleitungs-URL, Grant Type, dem gerade erhaltenen Code und den Scopes senden. Ich verwende Postman, um diesen API-Aufruf zu erstellen.

Die bereits bei der Erstellung der Anwendung erhaltene Client-ID und das Client-Geheimnis und der aus dem vorherigen Schritt erhaltene Code binden den Nutzer an das Token. In diesem Token haben wir also auch einen Link zum Nutzer, damit wir etwas in seinem oder ihrem Namen posten können.

Sie können natürlich auch Curl, Soap UI oder jedes andere Tool verwenden, das Rest-Aufrufe ausführen kann.

Access token verbinden den Micro Integrator mit der Mastodon API

Wenn wir diese API ausführen, erhalten wir ein Zugriffstoken, das wir den nachfolgenden API-Aufrufen als Header hinzufügen können, um beispielsweise eine Statusaktualisierung durchzuführen.

Wenn man einen neuen Status posten möchte, muss man laut Dokumentation eine POST-Anfrage an die URL /api/v1/statuses mit einem Bearer-Token im Header und vier erforderlichen Parametern stellen.

Um diesen API-Aufruf zu erstellen, werde ich wieder Postman verwenden.

Postman API aufruf

Wie Sie sehen können, wird der Status zu Mastodon hinzugefügt.

Micro Integrator verbunden mit der Mastodon API

Da wir jetzt wissen, wie der Mechanismus funktioniert, können wir eine Integration daraus machen. Und das werden wir im zweiten Teil dieses Blogs tun.

Mit der API arbeiten

Wenn man mit einer API arbeitet, insbesondere mit einer so großen wie der von Mastodon, ist eine genaue Dokumentation der Schlüssel zum schnellen Verständnis der Funktionsweise der API. Um sie zu verstehen, brauchte ich einige Zeit und die Hilfe eines Mastodon-Admins (es ist ein dezentrales Modell).

Was noch fehlt, ist eine OpenAPI (auch bekannt als Swagger-Datei) oder eine Postman-Sammlung, die man sich ansehen und testen kann. Es gibt zwar einige benutzergesteuerte Postman-Sammlungen, aber im Idealfall kommen diese von Mastodon selbst.

Ich habe mich auch an Colin Domoney von 42 Crunch gewandt, um seine Meinung zu dieser speziellen API zu hören, da er der Verwalter von APIsecurity.io und ein Experte auf dem Gebiet der API-Sicherheit, -Schwachstellen, -Verstöße und so weiter ist. Daher wird sich Colin in einem ergänzenden Artikel mit den Sicherheitsaspekten der API befassen.

Es ist schon seltsam, dass in der Dokumentation von vier erforderlichen Parametern die Rede ist und ich im Beispiel nur einen Parameter hinzugefügt habe – nämlich den eigentlichen Status, den ich posten wollte.

Außerdem ist es eigenartig, dass das Token nicht abläuft. Der Vorteil von OAUTH2-Token ist, dass sie nach einer vordefinierten Zeit ablaufen (können). Diesen Vorteil kann man mit einer Plastikschlüsselkarte in einem Hotel vergleichen. Solange man zahlender Gast ist, erhält man damit Zugang zu seinem Hotelzimmer. Wenn man kein zahlender Gast mehr ist oder die Schlüsselkarte verliert, kann sie einfach gesperrt werden, so dass niemand mehr mit dieser Schlüsselkarte Zutritt hat. In manchen älteren Hotels, vor allem in den kleineren, bekommt man noch einen richtigen Schlüssel. Wenn man ihn verliert, muss er ersetzt werden, und im Idealfall wird auch das Schloss ausgetauscht. Ansonsten könnte sich jeder, der den Schlüssel findet, Zugang zum Hotelzimmer verschaffen, bis das Schloss ausgetauscht wird.

Beim Schreiben dieses Blogs habe ich ein paar Stunden gebraucht, um herauszufinden, wie Mastodon im Hinblick auf öffentliche und private Daten, die Verwendung der verschiedenen Grant Types und allgemein funktioniert. Und ehrlich gesagt habe ich noch nicht einmal richtig an der Oberfläche gekratzt. Jetzt wissen Sie, wie viel Arbeit in die Einrichtung und Umwandlung in einen Konnektor fließt. Es wäre eine Aufgabe, für die wahrscheinlich mindestens ein paar Wochen nötig wären, um alles auszuarbeiten, APIs zu erstellen und alles so zum Laufen zu bringen, dass Sie es einfach in den Micro Integrator oder Enterprise Integrator integrieren und mit Mastodon arbeiten können.

deu
Schließen