{"id":55000444,"date":"2024-10-01T00:00:00","date_gmt":"2024-11-05T20:52:50","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=444"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Trello_per_RestAPI_steuern","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/","title":{"rendered":"Trello per Rest-API steuern"},"content":{"rendered":"<p><b>Trello ist eines der bekanntesten Projektmanagement-Tools. Damit lassen sich Projekte, Aufgaben und ToDos im Kanban-Style verwalten. Die Basisfunktionen sind bereits m&auml;chtig und dabei aber nicht un&uuml;bersichtlich und man kann &uuml;ber sogenannte PowerUps viele zus&auml;tzliche Funktionen integrieren. Nicht zu reden von den Automationen &#8211; viele sind interne Automationen, die innerhalb von Trello genutzt werden k&ouml;knnen und nat&uuml;rlich gibt es auch einige M&ouml;glichkeiten, Trello und die enthaltenen Elemente &uuml;ber Werkzeuge wie Zapier oder Make von anderen Tools zu steuern und umgekehrt. Aber wir w&auml;ren keine VB\/VBA-Entwickler, wenn wir nicht per Code auf die in Trello angelegten Boards, Karten und Eigenschaften zugreifen wollten, um diese zu lesen oder zu schreiben. Die Weboberfl&auml;chen vieler noch so guter Tools bieten letztlich nicht immer alle n&ouml;tigen Funktionen, die man aber abbilden kann, wenn das Tool eine Rest-API anbietet und man sich mit der Steuerung solcher APIs unter VB\/VBA auskennt. Dann k&ouml;nnen wir beispielsweise schnell die Projekte oder Aufgaben aus einer Excel- oder Access-Tabelle in Trello anlegen oder auch auf die in Trello enthaltenen Daten zugreifen, um diese mit den Daten in unserer Datenbankwendung abzugleichen. In diesem Artikel zeigen wir, wie dies gelingt.<\/b><\/p>\n<h2>Voraussetzungen f&uuml;r die Nutzung der Trello-Rest-API<\/h2>\n<p>Voraussetzung ist, dass wir einen Trello-Account angelegt haben.<\/p>\n<p>Im Gegensatz zu verschiedenen anderen Anbietern gibt es bei Trello keine grunds&auml;tzlichen Einschr&auml;nkungen in Abh&auml;ngigkeit vom Zahlungsplan, den man gew&auml;hlt hat &#8211; die Rest-API k&ouml;nnen wir immer nutzen.<\/p>\n<p>Allerdings sind bestimmte Funktionen erst mit den h&ouml;heren, kostenpflichtigen Pl&auml;nen verf&uuml;gbar. So k&ouml;nnen wir beispielsweise mit den h&ouml;heren Pl&auml;nen eine h&ouml;here Anzahl von Aufrufen pro Zeiteinheit absetzen oder auch erweiterte Funktonen nutzen. Benutzerdefinierte Felder beispielsweise k&ouml;nnen wir mit dem kostenlosen Plan noch nicht bearbeiten oder nutzen.<\/p>\n<h2>Erste Schritte f&uuml;r die Trello-Rest-API<\/h2>\n<p>Wann immer wir eine Rest-API verwenden wollen, ben&ouml;tigen wir einen Key, mit dem wir uns bei der Rest-API f&uuml;r unseren Account referenzieren k&ouml;nnen.<\/p>\n<p>Das bedeutet, dass wir irgendwo in unserem Trello-Kundenkonto eine solche Zeichenfolge finden oder anlegen k&ouml;nnen sollten. Die grundlegenden Informationen finden wir unter dieser URL:<\/p>\n<pre>https:\/\/developer.atlassian.com\/cloud\/trello\/guides\/rest-api\/api-introduction\/<\/pre>\n<h2>Power-Up\/Integration anlegen<\/h2>\n<p>Um auf die Rest-API zugreifen zu k&ouml;nnen, m&uuml;ssen wir eine neue Integration erstellen. Dazu gehen wir zur folgenden URL, wobei wir f&uuml;r die folgenden Schritte bereits mit unserem Benutzerkonto angemeldet sein m&uuml;ssen:<\/p>\n<pre>https:\/\/trello.com\/power-ups\/admin<\/pre>\n<p>Hier finden wir eine Schaltfl&auml;che namens <b>Neu<\/b>, die wir gleich einmal bet&auml;tigen (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_05\/pic_444_002.png\" alt=\"Seite zum Anlegen eines Power-Ups oder einer Integration\" width=\"649,627\" height=\"226,4225\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Seite zum Anlegen eines Power-Ups oder einer Integration<\/span><\/b><\/p>\n<p>Auf der anschlie&szlig;end erscheinenden Seite geben wir die f&uuml;r das Anlegen eines Power-Up beziehungsweise einer Integration ben&ouml;tigten Informationen an (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_05\/22-09-2024_18-23-38.png\" alt=\"Eingabe der notwendigen Informationen\" width=\"649,627\" height=\"538,5725\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Eingabe der notwendigen Informationen<\/span><\/b><\/p>\n<p>Die n&auml;chste Seite l&auml;dt uns nun direkt dazu ein, einen API-Schl&uuml;ssel zu erstellen.<\/p>\n<p>Um das zu erledigen, klicken wir auf den Befehl <b>Einen neuen API-Schl&uuml;ssel generieren <\/b>(siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_05\/pic_444_004.png\" alt=\"Anlegen des neuen Schl&uuml;ssels\" width=\"649,627\" height=\"420,0029\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Anlegen des neuen Schl&uuml;ssels<\/span><\/b><\/p>\n<p>Eine Best&auml;tigung sp&auml;ter sehen wir auf der gleichen Seite bereits unsere API-Schl&uuml;ssel. Diesen kopieren wir in die Zwischenablage und speichern ihn an einer sicheren Stelle zwischen, zum Beispiel in einer Textdatei.<\/p>\n<p>Au&szlig;erdem finden wir, etwas versteckt, den Link zum manuellen Erstellen eines Tokens f&uuml;r unsere Anwendung (in Bild 4 hervorgehoben).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_05\/pic_444_005.png\" alt=\"Der neue Schl&uuml;ssel auf der Webseite von Trello\" width=\"649,627\" height=\"683,0265\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Der neue Schl&uuml;ssel auf der Webseite von Trello<\/span><\/b><\/p>\n<p>Hier weist der Text explizit darauf hin, dass wir ein hier manuell erstelltes Token nutzen k&ouml;nnen, um eine Anwendung selbst zu erstellen oder lokal zu testen. Wir haben an dieser Stelle nicht vor, eine Anwendung zu programmieren, mit der wir auf die Boards anderer Benutzer zugreifen wollen.<\/p>\n<p>Wir m&ouml;chten allein auf unser eigenes Board zugreifen und die dort enthaltenen Elemente einlesen und bearbeiten k&ouml;nnen.<\/p>\n<p>Durch das Anklicken des Links mit dem Text <b>Token <\/b>gelangen wir zu einer weiteren Seite, die wir in Bild 5 sehen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_05\/pic_444_006.png\" alt=\"Anlegen eines Tokens f&uuml;r die Authentifizierung\" width=\"649,627\" height=\"1085,495\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Anlegen eines Tokens f&uuml;r die Authentifizierung<\/span><\/b><\/p>\n<p>Dies ist der Dialog, der auch auftauchen w&uuml;rde, wenn wir einer Anwendung den Zugriff auf die Boards anderer Benutzer erlauben wollten. In diesem Fall wollen wir allerdings nur ein Token f&uuml;r den Zugriff auf unser eigenes Board erhalten. Nach einer Pr&uuml;fung, ob die Benutzerdaten, mit denen wir angemeldet sind, mit den hier angezeigten Benutzerdaten &uuml;bereinstimmen, k&ouml;nnen wir uns den unteren Bereich des Dialogs ansehen.<\/p>\n<p>Hier finden wir die Angabe der Berechtigungen, die wir mit dem zu erstellenden Token erhalten.<\/p>\n<p>Beispielsweise der Zugriff auf Name und Benutzername, Einf&uuml;gen von Kommentaren, aber vor allem Zugriff auf alle Boards und Arbeitsbereiche und das Erstellen und Aktualisieren von Karten, Listen, Boards und Arbeitsbereichen.<\/p>\n<p>Hier klicken wir nun die Schaltfl&auml;che <b>Erlauben <\/b>an. Dies liefert uns als Ergebnis eine neue Seite, mit dem Token, das uns noch f&uuml;r den Zugriff auf die Rest-API fehlte (siehe Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_05\/pic_444_007.png\" alt=\"Das Token f&uuml;r den Zugriff auf unser Trello-Konto\" width=\"649,627\" height=\"242,1488\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Das Token f&uuml;r den Zugriff auf unser Trello-Konto<\/span><\/b><\/p>\n<p>Diese Token kopieren wir ebenfalls in die Zwischenanlage und f&uuml;gen es zu der Textdatei hinzu, in der wir bereits den API-Key gespeichert haben.<\/p>\n<h2>Erste Schritte f&uuml;r den Trello-Zugriff in VBA<\/h2>\n<p>Wenn wir nun per VBA auf Trello zugreifen wollen, ben&ouml;tigen wir f&uuml;r unser VBA-Projekt einen Verweis auf die Bibliothek <b>Microsoft XML, v6.0<\/b>. Diesen legen wir an, indem wir im VBA-Editor den Men&uuml;befehl <b>Extras|Verweise <\/b>bet&auml;tigen und hier den entsprechenden Eintrag selektieren (siehe Bild 7). Hier f&uuml;gen wir gleich noch einen weiteren Eintrag hinzu, n&auml;mlich den namens <b>Microsoft Scripting Runtime<\/b>. Diesen ben&ouml;tigen wir f&uuml;r die Verwendung der nachfolgend vorgestellten Module, die intensiven Gebrauch des <b>Dictionary<\/b>-Objekts machen, das sich in diesem Verweis verbirgt.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_05\/pic_444_001.png\" alt=\"Hinzuf&uuml;gen eines Verweises auf die XML-Bibliothek\" width=\"424,6267\" height=\"334,749\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Hinzuf&uuml;gen eines Verweises auf die XML-Bibliothek<\/span><\/b><\/p>\n<p>Diese Module sind in anderen Artikel bereits zum Einsatz gekommen und hei&szlig;en <b>mdlJSON <\/b>und <b>mdlJSONDOM<\/b>. Mehr dazu erf&auml;hrst Du in den Artikeln <b>Mit JSON arbeiten <\/b>(<b>www.vbentwickler.de\/361<\/b>) und <b>JSON-Dokumente per Objektmodell zusammenstellen <\/b>(<b>www.vbentwickler.de\/412<\/b>).<\/p>\n<h2>Referenz der Rest-API<\/h2>\n<p>Bevor wir mit der Programmierung der Rest-API beginnen, hier noch der Hinweis auf die Referenz der Rest-API von Trello. Dies finden wir unter dieser URL:<\/p>\n<pre>https:\/\/developer.atlassian.com\/cloud\/trello\/rest<\/pre>\n<p>Hier finden wir auf der linken Seite alle bereits bekannten Elemente wieder &#8211; beispielsweise <b>Boards<\/b>, <b>Cards<\/b>, <b>Checklists<\/b>, <b>CustomFields<\/b>, <b>Labels<\/b>, <b>Lists<\/b>, <b>Members <\/b>und so weiter. F&uuml;r jedes dieser Elemente finden wir alle denkbaren API-Befehle &#8211; hier wurde wirklich an alles gedacht.<\/p>\n<h2>Vorbereiten der Zugriffsdaten<\/h2>\n<p>Weiter oben haben wir den API-Key sowie das Token ausgelesen und in einer Textdatei zwischengespeichert. Diese holen wir nun hervor und speichern diese in zwei &ouml;ffentlich deklarierten Konstanten. Diese legen wir in einem neuen, leeren VBA-Standardmodul an:<\/p>\n<pre><span style=\"color:blue;\">Public <\/span>Const cStrApiKey_Trello<span style=\"color:blue;\"> As String<\/span> = \"1c16ba94e18e2xxxxxxxxx734f08c6345\"\r\n<span style=\"color:blue;\">Public <\/span>Const cStrToken_Trello<span style=\"color:blue;\"> As String<\/span> = \"ATTA6467f2ee3c81c6fa0xxxxxxxxxxacbfe587dc3c15eb30f19a61db195b311e1CBC464D1\"<\/pre>\n<p>Au&szlig;erdem platzieren wir in einer weiteren Konstanten die Basis-URL, die wir f&uuml;r alle Zugriffe als Grundlage verwenden:<\/p>\n<pre><span style=\"color:blue;\">Public <\/span>Const cStrUrl_Trello<span style=\"color:blue;\"> As String<\/span> = \"https:\/\/api.trello.com\/1\"<\/pre>\n<h2>Abfragen von Informationen zum aktuellen Benutzer<\/h2>\n<p>Weiter oben haben wir schon hervorgehoben, dass wir uns bei der in diesem Artikel beschriebenen L&ouml;sung auf den Rest-API-Zugriff auf die Daten unseres eigenen Benutzerkontos bei Trello beschr&auml;nken w&uuml;rden. Wenn wir nun Informationen zu diesem Konto abrufen wollen, ben&ouml;tigen wir dementsprechend keine ID f&uuml;r unser Kundenkonto, die wir als Parameter &uuml;bergeben, sondern lediglich das Schl&uuml;sselwort <b>me <\/b>als Referenz. Die Ausgabe der Details zu unserem Kundenkonto nutzen wir auch als Beispiel f&uuml;r die Einf&uuml;hrung der wenigen ben&ouml;tigten Codezeilen f&uuml;r den Zugriff auf die Trello-Rest-API.<\/p>\n<p>Die Basis f&uuml;r all unsere Zugriffe auf die Rest-API ist die Funktion <b>HTTPRequestTrello<\/b> aus Listing 1.<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>HTTPRequestTrello(strURL<span style=\"color:blue;\"> As String<\/span>, <span style=\"color:blue;\">Optional<\/span> strMethod<span style=\"color:blue;\"> As String<\/span> = \"POST\", _\r\n         <span style=\"color:blue;\">Optional<\/span> strRequest<span style=\"color:blue;\"> As String<\/span>, <span style=\"color:blue;\">Optional<\/span> strResponse<span style=\"color:blue;\"> As String<\/span>)<span style=\"color:blue;\"> As Integer<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>objHTTP<span style=\"color:blue;\"> As <\/span>ServerXMLHTTP60\r\n     <span style=\"color:blue;\">Set<\/span> objHTTP = <span style=\"color:blue;\">New<\/span> MSXML2.ServerXMLHTTP60\r\n     <span style=\"color:blue;\">With<\/span> objHTTP\r\n         <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">InStr<\/span>(1, strURL, \"?\") = 0<span style=\"color:blue;\"> Then<\/span>\r\n             strURL = strURL & \"?key=\" & cStrApiKey_Trello & \"&token=\" & cStrToken_Trello\r\n         <span style=\"color:blue;\">Else<\/span>\r\n             strURL = strURL & \"&key=\" & cStrApiKey_Trello & \"&token=\" & cStrToken_Trello\r\n         <span style=\"color:blue;\">End If<\/span>\r\n         .Open strMethod, strURL, <span style=\"color:blue;\">False<\/span>\r\n         .setRequestHeader \"Content-Type\", \"application\/json\"\r\n         <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> <span style=\"color:blue;\">Len<\/span>(strRequest) = 0<span style=\"color:blue;\"> Then<\/span>\r\n             .setRequestHeader \"Body\", strRequest\r\n         <span style=\"color:blue;\">End If<\/span>\r\n         .send\r\n         strResponse = .responseText\r\n         HTTPRequestTrello = .status\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Funktion f&uuml;r den Zugriff auf die Rest-API von Trello<\/span><\/b><\/p>\n<p>Diese Funktion nimmt die URL, die Methode (<b>POST<\/b>, <b>GET<\/b>, <b>PUT <\/b>oder <b>DELETE<\/b>) sowie gegebenenfalls eine im JSON-Format gelieferte Anfrage entgegen. Ein weiterer Parameter namens <b>strResponse <\/b>liefert ein eventuell im JSON-Format erhaltenes Ergebnis zur&uuml;ck. Die Funktion selbst ist als <b>Integer <\/b>deklariert und sie soll einen Zahlenwert zur&uuml;ckliefern, der Auskunft &uuml;ber die Art des Ergebnisses liefert. Der Wert <b>200 <\/b>beispielsweise steht f&uuml;r einen erfolgreichen Aufruf.<\/p>\n<p>Die Funktion deklariert und erstellt ein Objekt des Typs <b>ServerXMLHTTP60<\/b>, mit dem wir den Zugriff auf die Rest-API durchf&uuml;hren k&ouml;nnen. Dazu pr&uuml;fen wir kurz die URL aus <b>strURL<\/b>. Es kann sein, dass wir hier in der aufrufenden Prozedur bereits einen oder mehrere Parameter hinzugef&uuml;gt haben. Der Teil der URL mit den Parametern wird immer mit dem Fragezeichen eingeleitet (<b>?<\/b>) und die einzelnen Name-Wert-Paare f&uuml;r die Parameter werden durch das Kaufmanns-Und miteinander verbunden (<b>&#038;<\/b>).<\/p>\n<p>Wenn bereits ein <b>&#038; <\/b>vorhanden ist, h&auml;ngen wir Key und Token mit einem f&uuml;hrenden Fragezeichen an, sonst mit einem Kaufmanns-Und. Zur &Uuml;berpr&uuml;fung nutzen wir eine <b>If&#8230;Then<\/b>-Bedingung und erg&auml;nzen darin die URL um die beiden Werte der Konstanten <b>cStrApiKey_Trello <\/b>und <b>cStrToken_Trello<\/b>, die wir f&uuml;r die Parameter <b>key und token <\/b>anh&auml;ngen.<\/p>\n<p>Dann rufen wir die <b>Open<\/b>-Methode auf und &uuml;bergeben dieser die Zugriffsart aus <b>strMethod <\/b>sowie die URL aus <b>strURL<\/b>.<\/p>\n<p>Als Request-Header geben wir nur die Art des Content-Types an (JSON). Wenn die Variable <b>strRequest <\/b>einen Request im JSON-Format enth&auml;lt, setzen wir den Inhalt dieser Variablen f&uuml;r einen weiteren Header namens <b>Body<\/b>.<\/p>\n<p>Schlie&szlig;lich schicken wir die Anfrage mit der <b>send<\/b>-Methode ab und speichern die Antwort aus der Eigenschaft responseText im R&uuml;ckgabeparameter <b>strResponse <\/b>und legen den Status als R&uuml;ckgabewert der Funktion fest.<\/p>\n<p>Um die Benutzerinformationen f&uuml;r unseren eigenen Benutzer abzurufen, ben&ouml;tigen wir eine recht kleine Prozedur namens <b>GetProfileTrello <\/b>zum Aufruf von <b>HTTPRequestTrello<\/b> (siehe Listing 2). Diese schreibt die um <b>\/members\/me <\/b>erg&auml;nzte Basis-URL in die Variable <b>strURL<\/b>, die auch an <b>HTTPRequestTrello <\/b>&uuml;bergeben wird &#8211; nebst der Methode <b>GET <\/b>und der Variablen <b>strResponse <\/b>zum Holen der Antwort.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>GetProfileTrello()\r\n     <span style=\"color:blue;\">Dim <\/span>intResult<span style=\"color:blue;\"> As Integer<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strURL<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strResponse<span style=\"color:blue;\"> As String<\/span>\r\n     strURL = cStrUrl_Trello\r\n     strURL = strURL & \"\/members\/me\"\r\n     intResult = HTTPRequestTrello(strURL, \"GET\", , _\r\n         strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Debug.Print<\/span> GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, _\r\n                 GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: Auslesen eines Profils &uuml;ber die Trello-Rest-API<\/span><\/b><\/p>\n<p>Nach dem Ausf&uuml;hren der Funktion pr&uuml;fen wir ihren R&uuml;ckgabewert. Lautet dieser <b>200<\/b>, war der Aufruf erfolgreich. Dann geben wir das Ergebnis, das als JSON-Dokument kommt, mithilfe der Funktion <b>GetJSONDOM<\/b> so strukturiert aus, dass wir per VBA leicht auf die ausgegebenen Elemente zugreifen k&ouml;nnen:<\/p>\n<p>In Bild 8 sehen wir, wie das Ergebnis im Direkbereich des VBA-Editors ausgegeben wird. Hier sehen wir nicht nur die eindeutige ID f&uuml;r unseren Benutzer, sondern auch seinen Namen und die E-Mail-Adresse. Au&szlig;erdem sehen wir hier auch noch weitere wichtige Informationen wie die IDs der Boards dieses Benutzers.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_05\/pic_444_008.png\" alt=\"Ausgabe des Zugriffs auf den eigenen Benutzer\" width=\"499,6267\" height=\"356,1442\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Ausgabe des Zugriffs auf den eigenen Benutzer<\/span><\/b><\/p>\n<h2>Boards eines Benutzers ausgeben<\/h2>\n<p>Wir k&ouml;nnen allerdings auch noch &uuml;ber eine eigens daf&uuml;r vorgesehene API-Funktion auf die Boards eines Benutzers zugreifen. Die ben&ouml;tigte Rest-API-Funktion finden wir hier beschrieben:<\/p>\n<pre>https:\/\/developer.atlassian.com\/cloud\/trello\/rest\/api-group-members\/#api-members-id-boards-get<\/pre>\n<p>Dieser Aufruf liefert normalerweise einen ganzen Rutsch an Informationen zu den jeweiligen Boards zur&uuml;ck.<\/p>\n<p>Wir wollen diese Informationen eingrenzen, indem wir in der URL mit <b>fields=id,name <\/b>auf die beiden Felder <b>ID <\/b>und <b>Name <\/b>eingrenzen (siehe Listing 3).<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>GetBoardsAMemberBelongsTo()\r\n     <span style=\"color:blue;\">Dim <\/span>intResult<span style=\"color:blue;\"> As Integer<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strURL<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strResponse<span style=\"color:blue;\"> As String<\/span>\r\n     strURL = cStrUrl_Trello & \"\/members\/me\/boards?fields=id,name\"\r\n     intResult = HTTPRequestTrello(strURL, \"GET\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Debug.Print<\/span> GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, _\r\n                 GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 3: Einlesen aller Boards eines Mitglieds<\/span><\/b><\/p>\n<p>Hier erhalten wir eine Antwort wie die folgende:<\/p>\n<pre>objJSON.Item(1).Item(\"id\"): 66eb1bc1aade0c9c5f0ca455\r\nobjJSON.Item(1).Item(\"name\"): Access [basics]\r\nobjJSON.Item(2).Item(\"id\"): 6640778b978d4b578d8d71\r\nobjJSON.Item(2).Item(\"name\"): Access im Unternehmen\r\n...\r\nobjJSON.Item(7).Item(\"id\"): 66ec4501b8422b5893b1f0e4\r\nobjJSON.Item(7).Item(\"name\"): VB-Entwickler<\/pre>\n<p>Wir finden also mit einem Index versehene Elemente einer Auflistung vor. Wenn wir diese nacheinander verarbeiten wollen, brauchen wir nicht jeweils den Index zu setzen und die Anweisungen zu wiederholen, sondern k&ouml;nnen einfach &uuml;ber eine Schleife auf die Elemente zugreifen. F&uuml;r den ersten Versuch reicht es jedoch, sich immer mal zun&auml;chst alle Elemente mit <b>Debug.Print GetJSONDOM(strResponse, True) <\/b>ausgeben zu lassen. Dann kann man die Struktur der Antwort analysieren und die Anweisungen f&uuml;r die tats&auml;chliche Verarbeitung hinzuf&uuml;gen. In diesem Fall sieht das wie folgt aus:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>GetBoardsAMemberBelongsTo()\r\n     ...\r\n     <span style=\"color:blue;\">Dim <\/span>objJSON<span style=\"color:blue;\"> As Object<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Integer<\/span>\r\n     ...\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Set<\/span> objJSON = ParseJson(strResponse)\r\n             For i = 1 To objJSON.Count\r\n                 <span style=\"color:blue;\">Debug.Print<\/span> objJSON.Item(i).Item(\"id\"), _\r\n                     objJSON.Item(i).Item(\"name\")\r\n             <span style=\"color:blue;\">Next<\/span> i\r\n         ...\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Wir haben zwei Variablen namens <b>objJSON <\/b>und <b>i <\/b>hinzugef&uuml;gt. Mit <b>objJSON <\/b>referenzieren wir das Ergebnis der Funktion <b>ParseJSON<\/b> f&uuml;r das mit <b>strResponse <\/b>gelieferte JSON-Dokument.<\/p>\n<p>Mit <b>objJSON.Count <\/b>ermitteln wir die Anzahl der <b>Item<\/b>-Elemente und durchlaufen diese dann in einer <b>For&#8230;Next<\/b>-Schleife.<\/p>\n<p>Damit k&ouml;nnen wir uns die ID und den Namen holen und verschiedene Dinge damit erledigen &#8211; zum Beispiel die Daten in eine Excel-Tabelle oder in eine Access-Tabelle schreiben.<\/p>\n<p>Zu den Boards ben&ouml;tigen zun&auml;chst erst einmal keine weiteren Informationen au&szlig;er der ID und dem Namen.<\/p>\n<h2>Informationen zu einem Board ermitteln<\/h2>\n<p>Haben wir die ID des zu untersuchenden Boards herausgefunden, k&ouml;nnen wir diese in einer weiteren Prozedur nutzen, um Details zu einem Board zu ermitteln.<\/p>\n<p>Die dazu verwendete Prozedur sieht wie in Listing 4 aus.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>GetABoard()\r\n     <span style=\"color:blue;\">Dim <\/span>intResult<span style=\"color:blue;\"> As Integer<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strURL<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strResponse<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>objJSON<span style=\"color:blue;\"> As Object<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strBoardID<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Integer<\/span>\r\n     strBoardID = \"66eb1bc1aade0c9c5f0ca455\"\r\n     strURL = cStrUrl_Trello & \"\/boards\/\" & strBoardID\r\n     intResult = HTTPRequestTrello(strURL, \"GET\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Debug.Print<\/span> GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, _\r\n                 GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 4: Einlesen der Detailinformationen eines Boards<\/span><\/b><\/p>\n<p>In diesem Fall brauchen wir in der URL nicht mehr &uuml;ber <b>members\/me\/ <\/b>auf den aktuellen Benutzer zuzugreifen, denn wir wollen unabh&auml;ngig vom Benutzer auf dieses Board zugreifen. Das gelingt auch. Allerdings nur, wenn der Benutzer, in dessen Kontext wir auf das Board zugreifen, auch die Berechtigungen f&uuml;r dieses Boards hat.<\/p>\n<h2>Karten eines Boards auslesen<\/h2>\n<p>Wenn wir weitere Elemente wie beispielswiese die Karten auslesen wollen, ben&ouml;tigen wir den API-Aufruf <b>\/boards\/{id}\/cards<\/b>.<\/p>\n<p>Mit der folgenden Prozedur <b>GetCardsOnBoard<\/b> holen wir uns wie oben bereits mit den Boards durchgef&uuml;hrt jeweils die ID und den Namen der jeweiligen Karte &#8211; dies erreichen wir durch die Angabe des Parameters <b>&#038;fields=id,name<\/b>. Anschlie&szlig;end geben wir die IDs und die Namen untereinander im Direktbereich des VBA-Editors aus (siehe Listing 5).<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>GetCardsOnABoard()\r\n     <span style=\"color:blue;\">Dim <\/span>intResult<span style=\"color:blue;\"> As Integer<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strURL<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strResponse<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>objJSON<span style=\"color:blue;\"> As Object<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strBoardID<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>i<span style=\"color:blue;\"> As Integer<\/span>\r\n     strBoardID = \"66eb1bc1aade0c9c5f0ca455\"\r\n     strURL = cStrUrl_Trello & \"\/boards\/\" & strBoardID & \"\/cards?fields=id,name\"\r\n     intResult = HTTPRequestTrello(strURL, \"GET\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Set<\/span> objJSON = ParseJson(strResponse)\r\n             For i = 1 To objJSON.Count\r\n                 <span style=\"color:blue;\">Debug.Print<\/span> objJSON.Item(i).Item(\"id\"), _\r\n                     objJSON.Item(i).Item(\"name\")\r\n             <span style=\"color:blue;\">Next<\/span> i\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, _\r\n               GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 5: Auslesen der Karten eines Boards<\/span><\/b><\/p>\n<h2>Listen eines Boards auslesen<\/h2>\n<p>Fast die gleiche Prozedur nutzen wir zum Auslesen aller Listen eines Boards (siehe Listing 6).<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>GetListsOnABoard()\r\n     ...\r\n     strBoardID = \"66eb1bc1aade0c9c5f0ca455\"\r\n     strURL = cStrUrl_Trello & \"\/boards\/\" & strBoardID & \"\/lists?fields=id,name\"\r\n     intResult = HTTPRequestTrello(strURL, \"GET\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Set<\/span> objJSON = ParseJson(strResponse)\r\n             For i = 1 To objJSON.Count\r\n                 <span style=\"color:blue;\">Debug.Print<\/span> objJSON.Item(i).Item(\"id\"), objJSON.Item(i).Item(\"name\")\r\n             <span style=\"color:blue;\">Next<\/span> i\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 6: Auslesen der Listen eines Boards<\/span><\/b><\/p>\n<p>Das Ergebnis sieht in diesem Fall beispielsweise wie folgt aus:<\/p>\n<pre>66ebc79e9b7b3c40a50aad0f    Noch offen\r\n66ebc7bcb7ce105e076bcdea    In Bearbeitung\r\n66ebc7bf9573e2a0c7d51a8a    Erledigt<\/pre>\n<h2>Karten einer Liste auslesen<\/h2>\n<p>Wir haben in den vorherigen beiden Beispielen gesehen, dass wir einerseits alle Karten eines Boards auslesen k&ouml;nnen, aber auch alle Listen eines Boards. In der Benutzeroberfl&auml;che werden die Karten unterhalb der Listen angezeigt. Wie also k&ouml;nnen wir die Karten einer Liste auslesen?<\/p>\n<p>Hier verwenden wir die zuvor mit <b>GetListsOnABoard <\/b>ermittelte Liste f&uuml;r die Variable <b>strListID <\/b>und &uuml;bergeben diese in der folgenden Form mit der URL:<\/p>\n<pre>\/lists\/{id}\/cards<\/pre>\n<p>Dazu h&auml;ngen wir, wie in den vorherigen Beispielen, den <b>fields<\/b>-Parameter an und schr&auml;nken die Ausgabe so auf die IDs und die Namen ein:<\/p>\n<p>Wenn wir alle Karten aller Listen aller Boards auslesen und in eine Tabelle schreiben wollen, k&ouml;nnen wir in die Prozedur <b>GetBoardsAMemberBelongsTo <\/b>um einen Aufruf der Prozedur <b>GetListsOnABoard <\/b>erweitern. Dieser w&uuml;rden wir dann einen Parameter hinzuf&uuml;gen, mit dem wir die ID des zu untersuchenden Boards &uuml;bergeben. In der Schleife dieser Prozedur k&ouml;nnen wir einen Aufruf der Prozedur <b>GetCardsInAList <\/b>hinzuf&uuml;gen, der wir wiederum mit einem noch anzulegenden Parameter die ID der entsprechenden Liste &uuml;bergeben (siehe Listing 7).<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>GetCardsInAList()\r\n     ...\r\n     <span style=\"color:blue;\">Dim <\/span>strListID<span style=\"color:blue;\"> As String<\/span>\r\n     strListID = \"66ebc79e9b7b3c40a50aad0f\"\r\n     strURL = cStrUrl_Trello & \"\/lists\/\" & strListID & \"\/cards?fields=id,name\"\r\n     intResult = HTTPRequestTrello(strURL, \"GET\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Set<\/span> objJSON = ParseJson(strResponse)\r\n             For i = 1 To objJSON.Count\r\n                 <span style=\"color:blue;\">Debug.Print<\/span> objJSON.Item(i).Item(\"id\"), objJSON.Item(i).Item(\"name\")\r\n             <span style=\"color:blue;\">Next<\/span> i\r\n         <span style=\"color:blue;\">Case <\/span>400\r\n             <span style=\"color:blue;\">Debug.Print<\/span> strResponse\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, _\r\n                 GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 7: Auslesen der Karten einer Liste<\/span><\/b><\/p>\n<h2>Arbeitsbereiche ermitteln<\/h2>\n<p>Bevor wir uns mit der Aufgabe besch&auml;ftigen, eigene Boards, Listen oder Karten zu erstellen, ben&ouml;tigen wir noch eine Information &#8211; n&auml;mlich die ID des Arbeitsbereichs, in dem wir diese Elemente anlegen wollen.<\/p>\n<p>W&auml;hrend die meisten anderen Elemente in der Benutzeroberfl&auml;che genauso benannt sind wie in der Rest-API, ist das bei den Arbeitsbereichen nicht der Fall &#8211; das Pendant in der Rest-API hei&szlig;t dort n&auml;mlich <b>Organization<\/b>.<\/p>\n<p>Daher verwenden wir die Prozedur aus Listing 8.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>GetAMembersOrganizations()\r\n     ...\r\n     strURL = cStrUrl_Trello & \"\/members\/me\/organizations\"\r\n     intResult = HTTPRequestTrello(strURL, \"GET\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Debug.Print<\/span> GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n             <span style=\"color:blue;\">Set<\/span> objJSON = ParseJson(strResponse)\r\n             For i = 1 To objJSON.Count\r\n                 <span style=\"color:blue;\">Debug.Print<\/span> objJSON.Item(i).Item(\"id\"), objJSON.Item(i).Item(\"name\"), objJSON.Item(i).Item(\"displayName\")\r\n             <span style=\"color:blue;\">Next<\/span> i\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 8: Auslesen der Arbeitsbereiche eines Mitglieds<\/span><\/b><\/p>\n<p>Mit dieser Prozedur holen wir uns die ID der bereits angelegten Arbeitsbereiche. Eigentlich hat man zun&auml;chst einmal nur einen Arbeitsbereich. Wenn wir jedoch &uuml;ber die Rest-API ein neues Board anlegen wollen und nicht explizit einen Arbeitsbereich angeben, wird das neue Board in einem neuen Arbeitsbereich angelegt.<\/p>\n<p>Um auszuschlie&szlig;en, dass dies geschieht, ermitteln wir also zuvor die ID des Zielarbeitsbereichs f&uuml;r unser neues Board.<\/p>\n<h2>Ein neues Board anlegen<\/h2>\n<p>Interessant wird es, wenn wir neue Boards, Listen und Karten anlegen und diese mit Inhalten f&uuml;llen. Wir starten mit dem Anlegen eines neuen Boards und dem Ermitteln der ID des neuen Boards, damit wir im Anschluss weitere Elemente hinzuf&uuml;gen k&ouml;nnen.<\/p>\n<p>Hier ist wichtig, dass wir die <b>idOrganization <\/b>angeben, also die ID des Workspaces, dem wir das Board hinzuf&uuml;gen wollen. Das erledigen wir mit einem Zusatz zur URL. Au&szlig;erdem geben wir den Namen des zu erstellenden Boards mit dem Parameter name an, ebenfalls in der URL. Beide Informationen &uuml;bergeben wir diesmal als Parameter der Prozedur aus Listing 9.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>CreateABoard(strBoard<span style=\"color:blue;\"> As String<\/span>, strOrganizationID<span style=\"color:blue;\"> As String<\/span>)\r\n     ...\r\n     strURL = cStrUrl_Trello & \"\/boards?name=\" & strBoard\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> <span style=\"color:blue;\">Len<\/span>(strOrganizationID) = 0<span style=\"color:blue;\"> Then<\/span>\r\n         strURL = strURL & \"&idOrganization=\" & strOrganizationID\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     intResult = HTTPRequestTrello(strURL, \"POST\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Set<\/span> objJSON = ParseJson(strResponse)\r\n             <span style=\"color:blue;\">Debug.Print<\/span> GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n             <span style=\"color:blue;\">Debug.Print<\/span> objJSON.Item(\"id\"), objJSON.Item(\"name\")\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 9: Erstellen eines neuen Boards<\/span><\/b><\/p>\n<p>Die Prozedur h&auml;ngt den Namen des zu erstellenden Boards &uuml;ber den Parameter name an die URL an. Au&szlig;erdem f&uuml;gt sie, wenn eine Organisations-ID &uuml;bergeben wurde, auch diese an die URL an. Diese wird wie &uuml;blich an <b>HTTPRequestTrello <\/b>&uuml;bergeben, diesmal mit der <b>POST<\/b>-Methode. Bei erfolgreicher Ausf&uuml;hrung erhalten wir mit <b>strResponse <\/b>die Antwort zur&uuml;ck, die wir zum Betrachten mit <b>GetJSONDOM <\/b>einmal komplett ausgeben.<\/p>\n<p>Dort erfahren wir, mit welchen Ausdr&uuml;cken wir die ID und den Namen des neuen Boards ermitteln und geben diese anschlie&szlig;end gezielt aus. Die ID des erstellten Boards ben&ouml;tigen wir gleich, um darin Listen und Karten anzulegen. Der Aufruf erfolgt beispielsweise mit:<\/p>\n<pre>CreateABoard \"Neues Board\", \"6640778a14eb58b09b29ae42\"<\/pre>\n<p>Die Organisations-ID haben wir mit der weiter oben vorgestellten Prozedur <b>GetAMembersOrganizations <\/b>ermittelt.<\/p>\n<h2>Ein Board l&ouml;schen<\/h2>\n<p>Um ein Board zu l&ouml;schen, rufen wir die URL mit <b>\/boards\/{id} <\/b>auf und &uuml;bergeben als Methode <b>DELETE<\/b>.<\/p>\n<p>Gegebenenfalls kann die &uuml;bergebene ID nicht gefunden werden, dann liefert <b>intResult <\/b>den Wert <b>404<\/b>.<\/p>\n<p>Wir geben direkt die Antwort aus <b>strResponse <\/b>aus (diese enth&auml;lt dann kein JSON-Dokument, das wir mit <b>GetJSONDOM <\/b>analysieren k&ouml;nnten).<\/p>\n<p>Beim Aufruf &uuml;bergeben wir die ID des zu l&ouml;schenden Boards, die wir zuvor mit der Prozedur <b>GetBoardsAMemberBelongsTo <\/b>ermittelt haben (siehe Listing 10).<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>DeleteABoard(strBoardID<span style=\"color:blue;\"> As String<\/span>)\r\n     ...\r\n     strURL = cStrUrl_Trello & \"\/boards\/\" & strBoardID\r\n     intResult = HTTPRequestTrello(strURL, \"DELETE\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Set<\/span> objJSON = ParseJson(strResponse)\r\n             <span style=\"color:blue;\">Debug.Print<\/span> \"Gel&ouml;scht.\"\r\n         <span style=\"color:blue;\">Case <\/span>404\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, strResponse\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 10: L&ouml;schen eines Boards<\/span><\/b><\/p>\n<pre>DeleteABoard \"66f2cabd67c80e62af15611e\"<\/pre>\n<h2>Neue Liste anlegen<\/h2>\n<p>Um eine Liste anzulegen, ben&ouml;tigen wir die ID des Boards und den Namen der Liste. Dann k&ouml;nnen wir die Prozedur aus Listing 11 nutzen.<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>CreateAList(strListenname<span style=\"color:blue;\"> As String<\/span>, strBoardID<span style=\"color:blue;\"> As String<\/span>)\r\n     ...\r\n     strURL = cStrUrl_Trello & \"\/lists?name=\" & strListenname\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> <span style=\"color:blue;\">Len<\/span>(strBoardID) = 0<span style=\"color:blue;\"> Then<\/span>\r\n         strURL = strURL & \"&idBoard=\" & strBoardID\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     intResult = HTTPRequestTrello(strURL, \"POST\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Set<\/span> objJSON = ParseJson(strResponse)\r\n             <span style=\"color:blue;\">Debug.Print<\/span> GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n             <span style=\"color:blue;\">Debug.Print<\/span> \"Neue Liste: \" & objJSON.Item(\"id\"), objJSON.Item(\"name\")\r\n         <span style=\"color:blue;\">Case <\/span>401\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, strResponse\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, _\r\n                 GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 11: Anlegen einer neuen Liste<\/span><\/b><\/p>\n<p>Der Aufruf sieht so aus:<\/p>\n<pre>CreateAList \"Neue Liste 1\", \"66f2d0120230abee3c8bb90a\"<\/pre>\n<h2>Neue Karte anlegen<\/h2>\n<p>Der Code f&uuml;r das Anlegen einer neuen Karte unterscheidet sich auch nicht sonderlich von dem zum Anlegen einer neuen Liste oder eines neuen Boards.<\/p>\n<p>Hier &uuml;bergeben wir lediglich den Namen der Karte und die ID der Liste, der wir die Karte hinzuf&uuml;gen wollen (siehe Listing 12).<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>CreateACard(strKartenname<span style=\"color:blue;\"> As String<\/span>, strListID<span style=\"color:blue;\"> As String<\/span>)\r\n     ...\r\n     strURL = cStrUrl_Trello & \"\/cards?name=\" & strKartenname\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> <span style=\"color:blue;\">Len<\/span>(strListID) = 0<span style=\"color:blue;\"> Then<\/span>\r\n         strURL = strURL & \"&idList=\" & strListID\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     intResult = HTTPRequestTrello(strURL, \"POST\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Set<\/span> objJSON = ParseJson(strResponse)\r\n             <span style=\"color:blue;\">Debug.Print<\/span> GetJSONDOM(strResponse, <span style=\"color:blue;\">True<\/span>)\r\n             <span style=\"color:blue;\">Debug.Print<\/span> \"Neue Karte: \" & objJSON.Item(\"id\"), objJSON.Item(\"name\")\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, strResponse\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 12: Anlegen einer neuen Karte<\/span><\/b><\/p>\n<p>F&uuml;r den Aufruf verwenden wir den folgenden Befehl, wobei wir die Zielliste zuvor mit der entsprechenden Funktion ermitteln:<\/p>\n<pre>CreateACard \"Neue Karte\", \"66f2d08e80717169d6dfc1dc\"<\/pre>\n<p>Damit legen wir eine neue Karte in Trello an. <\/p>\n<h2>Weitere Daten auf Karten eintragen<\/h2>\n<p>Normalerweise reicht es nicht aus, einfach nur eine Karte mit einem Titel anzulegen. Meist ben&ouml;tigt man zumindest noch eine Beschreibung und ein F&auml;lligkeitsdatum. Um dies zu realisieren, erweitern wir die zuvor beschriebene Prozedur wie in Listing 13.<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>CreateACardWithDateAndDescription(strName<span style=\"color:blue;\"> As String<\/span>, _\r\n         <span style=\"color:blue;\">Optional<\/span> strDescription<span style=\"color:blue;\"> As String<\/span>, _\r\n         <span style=\"color:blue;\">Optional<\/span> datDue<span style=\"color:blue;\"> As Date<\/span>, <span style=\"color:blue;\">Optional<\/span> strListID<span style=\"color:blue;\"> As String<\/span>)<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>intResult<span style=\"color:blue;\"> As Integer<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strURL<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strResponse<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strDatDue<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>objJSON<span style=\"color:blue;\"> As Object<\/span>\r\n     strURL = cStrUrl_Trello & \"\/cards?name=\" & strName\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> <span style=\"color:blue;\">Len<\/span>(strListID) = 0<span style=\"color:blue;\"> Then<\/span>\r\n         strURL = strURL & \"&idList=\" & strListID\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> <span style=\"color:blue;\">Len<\/span>(strDescription) = 0<span style=\"color:blue;\"> Then<\/span>\r\n         strURL = strURL & \"&desc=\" & strDescription\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> datDue = 0<span style=\"color:blue;\"> Then<\/span>\r\n         strDatDue = Format(datDue, \"yyyy-mm-dd\")\r\n         strURL = strURL & \"&due=\" & strDatDue\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     intResult = HTTPRequestTrello(strURL, \"POST\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             <span style=\"color:blue;\">Set<\/span> objJSON = ParseJson(strResponse)\r\n             CreateACardWithDateAndDescription = objJSON.Item(\"id\")\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, strResponse\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 13: Anlegen einer neuen Karte mit Datum und Beschreibung<\/span><\/b><\/p>\n<p>Hier f&uuml;gen wir zwei Parameter f&uuml;r die Beschreibung  (<b>strDescription<\/b>) und das F&auml;lligkeitsdatum hinzu (<b>datDue<\/b>). Der Unterschied zur vorherigen Version ist, dass wir die beiden zus&auml;tzlichen Parameter zun&auml;chst auf Vorhandensein pr&uuml;fen.<\/p>\n<p>Hat der Parameter <b>strDescription <\/b>eine L&auml;nge gr&ouml;&szlig;er <b>0<\/b>, wird ein weiterer Parameter an die Zeichenkette aus <b>strURL <\/b>angeh&auml;ngt.<\/p>\n<p>Das Gleiche gilt f&uuml;r <b>datDue <\/b>&#8211; hier pr&uuml;fen wir allerdings, ob der Parameter nicht den Wert <b>0 <\/b>enth&auml;lt, was dem Standardwert entspricht und nur eintritt, wenn der Benutzer kein Datum &uuml;bergeben hat.<\/p>\n<p>Wurde ein Datum &uuml;bergeben, formatieren wir dieses noch in dem Format, das von der Rest-API erwartet wird, n&auml;mlich <b>yyyy-mm-dd<\/b>.<\/p>\n<p>Dann schicken wir die Anfrage wie gewohnt an die Rest-API.<\/p>\n<p>Eine Prozedur f&uuml;r den Aufruf dieser Funktion sieht beispielsweise wie folgt aus:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>Test_CreateACardWithDateAndDescription()\r\n     <span style=\"color:blue;\">Dim <\/span>strName<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strDescription<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>datDue<span style=\"color:blue;\"> As Date<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strListID<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strCardID<span style=\"color:blue;\"> As String<\/span>\r\n     strName = \"Karte mit Beschreibung und Datum\"\r\n     strDescription = _\r\n         \"Dies ist die Beschreibung unserer Karte.\"\r\n     datDue = Date + 7\r\n     strListID = \"672a467a7a22b30d4d0f5fd2\"\r\n     strCardID = CreateACardWithDateAndDescription( _\r\n         strName, strDescription, datDue, strListID)\r\n     <span style=\"color:blue;\">Debug.Print<\/span> \"Neue Karte: \" & strCardID\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Sie gibt nach dem erfolgreichen Erstellen den Wert der ID der neuen Karte aus.<\/p>\n<h2>&Auml;ndern einer Karte<\/h2>\n<p>Und letztlich wollen wir auch einmal die Eigenschaften einer bestehenden Karte &auml;ndern. Dazu nutzen wir die Funktion aus Listing 14.<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>ChangeACard(strCardID<span style=\"color:blue;\"> As String<\/span>, strName<span style=\"color:blue;\"> As String<\/span>, _\r\n         <span style=\"color:blue;\">Optional<\/span> strDescription<span style=\"color:blue;\"> As String<\/span>, <span style=\"color:blue;\">Optional<\/span> datDue<span style=\"color:blue;\"> As Date<\/span>)<span style=\"color:blue;\"> As Boolean<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>intResult<span style=\"color:blue;\"> As Integer<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strURL<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strResponse<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strParameters<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strDatDue<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>objJSON<span style=\"color:blue;\"> As Object<\/span>\r\n     strURL = cStrUrl_Trello & \"\/cards\/\" & strCardID\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> <span style=\"color:blue;\">Len<\/span>(strName) = 0<span style=\"color:blue;\"> Then<\/span>\r\n         strParameters = strParameters & \"&name=\" & strName\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> <span style=\"color:blue;\">Len<\/span>(strDescription) = 0<span style=\"color:blue;\"> Then<\/span>\r\n         strParameters = strParameters & \"&desc=\" & strDescription\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Not<\/span> datDue = 0<span style=\"color:blue;\"> Then<\/span>\r\n         strDatDue = Format(datDue, \"yyyy-mm-dd\")\r\n         strParameters = strParameters & \"&due=\" & strDatDue\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     <span style=\"color:blue;\">If <\/span><span style=\"color:blue;\">Len<\/span>(strParameters) &gt; 0<span style=\"color:blue;\"> Then<\/span>\r\n         strURL = strURL & \"?\" & <span style=\"color:blue;\">Mid<\/span>(strParameters, 2)\r\n     <span style=\"color:blue;\">End If<\/span>\r\n     intResult = HTTPRequestTrello(strURL, \"PUT\", , strResponse)\r\n     Select Case intResult\r\n         <span style=\"color:blue;\">Case <\/span>200\r\n             ChangeACard = <span style=\"color:blue;\">True<\/span>\r\n             <span style=\"color:blue;\">Set<\/span> objJSON = ParseJson(strResponse)\r\n             ChangeACard = objJSON.Item(\"id\")\r\n         <span style=\"color:blue;\">Case Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> intResult, strResponse\r\n     <span style=\"color:blue;\">End Select<\/span>\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 14: &Auml;ndern einer neuen Karte<\/span><\/b><\/p>\n<p>Diese ist &auml;hnlich aufgebaut wie die zum Erstellen einer Karte. Es gibt jedoch ein paar feine Unterschiede. Der erste ist, dass wir nicht die ID der Liste &uuml;bergeben, sondern die ID der zu &auml;ndernden Karte. Diese &uuml;bergeben wir in der URL auch nicht als Name-Wert-Paar, sondern hinter der Basis-URL und dem Element cards als weiteres Element zwischen zwei Schr&auml;gstrichen.<\/p>\n<p>Die &uuml;brigen Elemente h&auml;ngen wir auch nicht einfach mit <b>&#038;<\/b>-Zeichen an diese URL an, denn der erste Parameter muss durch das Fragezeichen von der eigentlichen URL getrennt sein. Daher tragen wir die Parameter in der Variablen <b>strParameters <\/b>zusammen und ersetzen dann das erste <b>&#038;<\/b> durch <b>?<\/b>.<\/p>\n<p>Die Funktion liefert keine ID zur&uuml;ck, denn wir legen ja kein neues Element an &#8211; stattdessen erhalten wir den Wert <b>True <\/b>oder <b>False <\/b>zur&uuml;ck, je nachdem, ob die &Auml;nderung erfolgreich war oder nicht.<\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Von den hier vorgestellten Beispielen lassen sich imgrunde alle Aktionen, die mit dem Anlegen, &Auml;ndern oder L&ouml;schen der verschiedenen Elemente in Trello ableiten.<\/p>\n<p>Dazu sucht man sich einfach den entsprechenden API-Befehl aus der Referenz heraus und passt die vorhandenen Prozeduren an.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Trello ist eines der bekanntesten Projektmanagement-Tools. Damit lassen sich Projekte, Aufgaben und ToDos im Kanban-Style verwalten. Die Basisfunktionen sind bereits m&auml;chtig und dabei aber nicht un&uuml;bersichtlich und man kann &uuml;ber sogenannte PowerUps viele zus&auml;tzliche Funktionen integrieren. Nicht zu reden von den Automationen &#8211; viele sind interne Automationen, die innerhalb von Trello genutzt werden k&ouml;knnen und nat&uuml;rlich gibt es auch einige M&ouml;glichkeiten, Trello und die enthaltenen Elemente &uuml;ber Werkzeuge wie Zapier oder Make von anderen Tools zu steuern und umgekehrt. Aber wir w&auml;ren keine VB\/VBA-Entwickler, wenn wir nicht per Code auf die in Trello angelegten Boards, Karten und Eigenschaften zugreifen wollten, um diese zu lesen oder zu schreiben. Die Weboberfl&auml;chen vieler noch so guter Tools bieten letztlich nicht immer alle n&ouml;tigen Funktionen, die man aber abbilden kann, wenn das Tool eine Rest-API anbietet und man sich mit der Steuerung solcher APIs unter VB\/VBA auskennt. Dann k&ouml;nnen wir beispielsweise schnell die Projekte oder Aufgaben aus einer Excel- oder Access-Tabelle in Trello anlegen oder auch auf die in Trello enthaltenen Daten zugreifen, um diese mit den Daten in unserer Datenbankwendung abzugleichen. In diesem Artikel zeigen wir, wie dies gelingt.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662024,66052024,44000012],"tags":[],"yst_prominent_words":[],"class_list":["post-55000444","post","type-post","status-publish","format-standard","hentry","category-662024","category-66052024","category-Interaktiv"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Trello ist eines der bekanntesten Projektmanagement-Tools. Damit lassen sich Projekte, Aufgaben und ToDos im Kanban-Style verwalten. Die Basisfunktionen sind bereits m\u00e4chtig und dabei aber nicht un\u00fcbersichtlich und man kann \u00fcber sogenannte PowerUps viele zus\u00e4tzliche Funktionen integrieren. Nicht zu reden von den Automationen - viele sind interne Automationen, die innerhalb von Trello genutzt werden k\u00f6knnen und nat\u00fcrlich gibt es auch einige M\u00f6glichkeiten, Trello und die enthaltenen Elemente \u00fcber Werkzeuge wie Zapier oder Make von anderen Tools zu steuern und umgekehrt. Aber wir w\u00e4ren keine VB\/VBA-Entwickler, wenn wir nicht per Code auf die in Trello angelegten Boards, Karten und Eigenschaften zugreifen wollten, um diese zu lesen oder zu schreiben. Die Weboberfl\u00e4chen vieler noch so guter Tools bieten letztlich nicht immer alle n\u00f6tigen Funktionen, die man aber abbilden kann, wenn das Tool eine Rest-API anbietet und man sich mit der Steuerung solcher APIs unter VB\/VBA auskennt. Dann k\u00f6nnen wir beispielsweise schnell die Projekte oder Aufgaben aus einer Excel- oder Access-Tabelle in Trello anlegen oder auch auf die in Trello enthaltenen Daten zugreifen, um diese mit den Daten in unserer Datenbankwendung abzugleichen. In diesem Artikel zeigen wir, wie dies gelingt.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Andr\u00e9 Minhorst\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Trello per Rest-API steuern - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"Trello ist eines der bekanntesten Projektmanagement-Tools. Damit lassen sich Projekte, Aufgaben und ToDos im Kanban-Style verwalten. Die Basisfunktionen sind bereits m\u00e4chtig und dabei aber nicht un\u00fcbersichtlich und man kann \u00fcber sogenannte PowerUps viele zus\u00e4tzliche Funktionen integrieren. Nicht zu reden von den Automationen - viele sind interne Automationen, die innerhalb von Trello genutzt werden k\u00f6knnen und nat\u00fcrlich gibt es auch einige M\u00f6glichkeiten, Trello und die enthaltenen Elemente \u00fcber Werkzeuge wie Zapier oder Make von anderen Tools zu steuern und umgekehrt. Aber wir w\u00e4ren keine VB\/VBA-Entwickler, wenn wir nicht per Code auf die in Trello angelegten Boards, Karten und Eigenschaften zugreifen wollten, um diese zu lesen oder zu schreiben. Die Weboberfl\u00e4chen vieler noch so guter Tools bieten letztlich nicht immer alle n\u00f6tigen Funktionen, die man aber abbilden kann, wenn das Tool eine Rest-API anbietet und man sich mit der Steuerung solcher APIs unter VB\/VBA auskennt. Dann k\u00f6nnen wir beispielsweise schnell die Projekte oder Aufgaben aus einer Excel- oder Access-Tabelle in Trello anlegen oder auch auf die in Trello enthaltenen Daten zugreifen, um diese mit den Daten in unserer Datenbankwendung abzugleichen. In diesem Artikel zeigen wir, wie dies gelingt.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-11-05T20:52:50+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"-001-11-30T00:00:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Trello per Rest-API steuern - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Trello ist eines der bekanntesten Projektmanagement-Tools. Damit lassen sich Projekte, Aufgaben und ToDos im Kanban-Style verwalten. Die Basisfunktionen sind bereits m\u00e4chtig und dabei aber nicht un\u00fcbersichtlich und man kann \u00fcber sogenannte PowerUps viele zus\u00e4tzliche Funktionen integrieren. Nicht zu reden von den Automationen - viele sind interne Automationen, die innerhalb von Trello genutzt werden k\u00f6knnen und nat\u00fcrlich gibt es auch einige M\u00f6glichkeiten, Trello und die enthaltenen Elemente \u00fcber Werkzeuge wie Zapier oder Make von anderen Tools zu steuern und umgekehrt. Aber wir w\u00e4ren keine VB\/VBA-Entwickler, wenn wir nicht per Code auf die in Trello angelegten Boards, Karten und Eigenschaften zugreifen wollten, um diese zu lesen oder zu schreiben. Die Weboberfl\u00e4chen vieler noch so guter Tools bieten letztlich nicht immer alle n\u00f6tigen Funktionen, die man aber abbilden kann, wenn das Tool eine Rest-API anbietet und man sich mit der Steuerung solcher APIs unter VB\/VBA auskennt. Dann k\u00f6nnen wir beispielsweise schnell die Projekte oder Aufgaben aus einer Excel- oder Access-Tabelle in Trello anlegen oder auch auf die in Trello enthaltenen Daten zugreifen, um diese mit den Daten in unserer Datenbankwendung abzugleichen. In diesem Artikel zeigen wir, wie dies gelingt.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#blogposting\",\"name\":\"Trello per Rest-API steuern - Visual Basic Entwickler\",\"headline\":\"Trello per Rest-API steuern\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"..\\\/fileadmin\\\/_temp_\\\/2024_05\\\/pic_444_002.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#articleImage\"},\"datePublished\":\"2024-10-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#webpage\"},\"articleSection\":\"2024, 5\\\/2024, Interaktiv\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vbentwickler.de\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/#listItem\",\"name\":\"2024\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/#listItem\",\"position\":2,\"name\":\"2024\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/5\\\/2024\\\/#listItem\",\"name\":\"5\\\/2024\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/5\\\/2024\\\/#listItem\",\"position\":3,\"name\":\"5\\\/2024\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/5\\\/2024\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#listItem\",\"name\":\"Trello per Rest-API steuern\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/#listItem\",\"name\":\"2024\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#listItem\",\"position\":4,\"name\":\"Trello per Rest-API steuern\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/5\\\/2024\\\/#listItem\",\"name\":\"5\\\/2024\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Andr\\u00e9 Minhorst\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/\",\"name\":\"Trello per Rest-API steuern - Visual Basic Entwickler\",\"description\":\"Trello ist eines der bekanntesten Projektmanagement-Tools. Damit lassen sich Projekte, Aufgaben und ToDos im Kanban-Style verwalten. Die Basisfunktionen sind bereits m\\u00e4chtig und dabei aber nicht un\\u00fcbersichtlich und man kann \\u00fcber sogenannte PowerUps viele zus\\u00e4tzliche Funktionen integrieren. Nicht zu reden von den Automationen - viele sind interne Automationen, die innerhalb von Trello genutzt werden k\\u00f6knnen und nat\\u00fcrlich gibt es auch einige M\\u00f6glichkeiten, Trello und die enthaltenen Elemente \\u00fcber Werkzeuge wie Zapier oder Make von anderen Tools zu steuern und umgekehrt. Aber wir w\\u00e4ren keine VB\\\/VBA-Entwickler, wenn wir nicht per Code auf die in Trello angelegten Boards, Karten und Eigenschaften zugreifen wollten, um diese zu lesen oder zu schreiben. Die Weboberfl\\u00e4chen vieler noch so guter Tools bieten letztlich nicht immer alle n\\u00f6tigen Funktionen, die man aber abbilden kann, wenn das Tool eine Rest-API anbietet und man sich mit der Steuerung solcher APIs unter VB\\\/VBA auskennt. Dann k\\u00f6nnen wir beispielsweise schnell die Projekte oder Aufgaben aus einer Excel- oder Access-Tabelle in Trello anlegen oder auch auf die in Trello enthaltenen Daten zugreifen, um diese mit den Daten in unserer Datenbankwendung abzugleichen. In diesem Artikel zeigen wir, wie dies gelingt.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Trello_per_RestAPI_steuern\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2024-10-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Trello per Rest-API steuern - Visual Basic Entwickler","description":"Trello ist eines der bekanntesten Projektmanagement-Tools. Damit lassen sich Projekte, Aufgaben und ToDos im Kanban-Style verwalten. Die Basisfunktionen sind bereits m\u00e4chtig und dabei aber nicht un\u00fcbersichtlich und man kann \u00fcber sogenannte PowerUps viele zus\u00e4tzliche Funktionen integrieren. Nicht zu reden von den Automationen - viele sind interne Automationen, die innerhalb von Trello genutzt werden k\u00f6knnen und nat\u00fcrlich gibt es auch einige M\u00f6glichkeiten, Trello und die enthaltenen Elemente \u00fcber Werkzeuge wie Zapier oder Make von anderen Tools zu steuern und umgekehrt. Aber wir w\u00e4ren keine VB\/VBA-Entwickler, wenn wir nicht per Code auf die in Trello angelegten Boards, Karten und Eigenschaften zugreifen wollten, um diese zu lesen oder zu schreiben. Die Weboberfl\u00e4chen vieler noch so guter Tools bieten letztlich nicht immer alle n\u00f6tigen Funktionen, die man aber abbilden kann, wenn das Tool eine Rest-API anbietet und man sich mit der Steuerung solcher APIs unter VB\/VBA auskennt. Dann k\u00f6nnen wir beispielsweise schnell die Projekte oder Aufgaben aus einer Excel- oder Access-Tabelle in Trello anlegen oder auch auf die in Trello enthaltenen Daten zugreifen, um diese mit den Daten in unserer Datenbankwendung abzugleichen. In diesem Artikel zeigen wir, wie dies gelingt.","canonical_url":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#blogposting","name":"Trello per Rest-API steuern - Visual Basic Entwickler","headline":"Trello per Rest-API steuern","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"..\/fileadmin\/_temp_\/2024_05\/pic_444_002.png","@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#articleImage"},"datePublished":"2024-10-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#webpage"},"articleSection":"2024, 5\/2024, Interaktiv"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","position":1,"name":"Home","item":"https:\/\/vbentwickler.de","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/#listItem","name":"2024"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/#listItem","position":2,"name":"2024","item":"https:\/\/vbentwickler.de\/category\/2024\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/5\/2024\/#listItem","name":"5\/2024"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/5\/2024\/#listItem","position":3,"name":"5\/2024","item":"https:\/\/vbentwickler.de\/category\/2024\/5\/2024\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#listItem","name":"Trello per Rest-API steuern"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/#listItem","name":"2024"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#listItem","position":4,"name":"Trello per Rest-API steuern","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/5\/2024\/#listItem","name":"5\/2024"}}]},{"@type":"Organization","@id":"https:\/\/vbentwickler.de\/#organization","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","url":"https:\/\/vbentwickler.de\/","logo":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author","url":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","width":96,"height":96,"caption":"Andr\u00e9 Minhorst"}},{"@type":"WebPage","@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#webpage","url":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/","name":"Trello per Rest-API steuern - Visual Basic Entwickler","description":"Trello ist eines der bekanntesten Projektmanagement-Tools. Damit lassen sich Projekte, Aufgaben und ToDos im Kanban-Style verwalten. Die Basisfunktionen sind bereits m\u00e4chtig und dabei aber nicht un\u00fcbersichtlich und man kann \u00fcber sogenannte PowerUps viele zus\u00e4tzliche Funktionen integrieren. Nicht zu reden von den Automationen - viele sind interne Automationen, die innerhalb von Trello genutzt werden k\u00f6knnen und nat\u00fcrlich gibt es auch einige M\u00f6glichkeiten, Trello und die enthaltenen Elemente \u00fcber Werkzeuge wie Zapier oder Make von anderen Tools zu steuern und umgekehrt. Aber wir w\u00e4ren keine VB\/VBA-Entwickler, wenn wir nicht per Code auf die in Trello angelegten Boards, Karten und Eigenschaften zugreifen wollten, um diese zu lesen oder zu schreiben. Die Weboberfl\u00e4chen vieler noch so guter Tools bieten letztlich nicht immer alle n\u00f6tigen Funktionen, die man aber abbilden kann, wenn das Tool eine Rest-API anbietet und man sich mit der Steuerung solcher APIs unter VB\/VBA auskennt. Dann k\u00f6nnen wir beispielsweise schnell die Projekte oder Aufgaben aus einer Excel- oder Access-Tabelle in Trello anlegen oder auch auf die in Trello enthaltenen Daten zugreifen, um diese mit den Daten in unserer Datenbankwendung abzugleichen. In diesem Artikel zeigen wir, wie dies gelingt.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2024-10-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/vbentwickler.de\/#website","url":"https:\/\/vbentwickler.de\/","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","inLanguage":"de-DE","publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","og:type":"article","og:title":"Trello per Rest-API steuern - Visual Basic Entwickler","og:description":"Trello ist eines der bekanntesten Projektmanagement-Tools. Damit lassen sich Projekte, Aufgaben und ToDos im Kanban-Style verwalten. Die Basisfunktionen sind bereits m\u00e4chtig und dabei aber nicht un\u00fcbersichtlich und man kann \u00fcber sogenannte PowerUps viele zus\u00e4tzliche Funktionen integrieren. Nicht zu reden von den Automationen - viele sind interne Automationen, die innerhalb von Trello genutzt werden k\u00f6knnen und nat\u00fcrlich gibt es auch einige M\u00f6glichkeiten, Trello und die enthaltenen Elemente \u00fcber Werkzeuge wie Zapier oder Make von anderen Tools zu steuern und umgekehrt. Aber wir w\u00e4ren keine VB\/VBA-Entwickler, wenn wir nicht per Code auf die in Trello angelegten Boards, Karten und Eigenschaften zugreifen wollten, um diese zu lesen oder zu schreiben. Die Weboberfl\u00e4chen vieler noch so guter Tools bieten letztlich nicht immer alle n\u00f6tigen Funktionen, die man aber abbilden kann, wenn das Tool eine Rest-API anbietet und man sich mit der Steuerung solcher APIs unter VB\/VBA auskennt. Dann k\u00f6nnen wir beispielsweise schnell die Projekte oder Aufgaben aus einer Excel- oder Access-Tabelle in Trello anlegen oder auch auf die in Trello enthaltenen Daten zugreifen, um diese mit den Daten in unserer Datenbankwendung abzugleichen. In diesem Artikel zeigen wir, wie dies gelingt.","og:url":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/","og:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","og:image:secure_url":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","article:published_time":"2024-11-05T20:52:50+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"Trello per Rest-API steuern - Visual Basic Entwickler","twitter:description":"Trello ist eines der bekanntesten Projektmanagement-Tools. Damit lassen sich Projekte, Aufgaben und ToDos im Kanban-Style verwalten. Die Basisfunktionen sind bereits m\u00e4chtig und dabei aber nicht un\u00fcbersichtlich und man kann \u00fcber sogenannte PowerUps viele zus\u00e4tzliche Funktionen integrieren. Nicht zu reden von den Automationen - viele sind interne Automationen, die innerhalb von Trello genutzt werden k\u00f6knnen und nat\u00fcrlich gibt es auch einige M\u00f6glichkeiten, Trello und die enthaltenen Elemente \u00fcber Werkzeuge wie Zapier oder Make von anderen Tools zu steuern und umgekehrt. Aber wir w\u00e4ren keine VB\/VBA-Entwickler, wenn wir nicht per Code auf die in Trello angelegten Boards, Karten und Eigenschaften zugreifen wollten, um diese zu lesen oder zu schreiben. Die Weboberfl\u00e4chen vieler noch so guter Tools bieten letztlich nicht immer alle n\u00f6tigen Funktionen, die man aber abbilden kann, wenn das Tool eine Rest-API anbietet und man sich mit der Steuerung solcher APIs unter VB\/VBA auskennt. Dann k\u00f6nnen wir beispielsweise schnell die Projekte oder Aufgaben aus einer Excel- oder Access-Tabelle in Trello anlegen oder auch auf die in Trello enthaltenen Daten zugreifen, um diese mit den Daten in unserer Datenbankwendung abzugleichen. In diesem Artikel zeigen wir, wie dies gelingt.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000444","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2024-11-05 20:05:35","updated":"2026-05-16 09:14:49","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2024\/\" title=\"2024\">2024<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2024\/5\/2024\/\" title=\"5\/2024\">5\/2024<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tTrello per Rest-API steuern\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de"},{"label":"2024","link":"https:\/\/vbentwickler.de\/category\/2024\/"},{"label":"5\/2024","link":"https:\/\/vbentwickler.de\/category\/2024\/5\/2024\/"},{"label":"Trello per Rest-API steuern","link":"https:\/\/vbentwickler.de\/Trello_per_RestAPI_steuern\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000444","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000444"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000444\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000444"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}