Note: This post was updated on March 4, 2021, to replace references to outdated code.
A couple weeks ago I wrote up a bit about a PHP wrapper object I’d written for the Twitter API v1.1. Since then I’ve been playing with the Trello API a bit, so I figured I’d write that up as well.
The code for the Trello API class is going to look really familiar because I actually wrote my Trello API wrapper object first, so the Twitter one is based on it.
Say you wanted to use this to get the name of your board’s red label. That would look like this:
We use the request method make a GET call to /1/boards/xxxxxx, where xxxxxx is the ID of the board we want the data for. We include the optional fields=labelNames query because the names of the labels are all the data we want to get back in this case. The request gives us back an object where each label’s name is available.
For the record, I kind of hate that Trello uses the color of each label as an identifier. I’m sure they can back the decision up but it reminds me of the old CSS “rule” about not naming your classes after what they look like, because what happens if you change what they look like? If you have a class that converts everything to uppercase and bolds it, and you call it uppercase_bold, that works great until you change it to small caps and italics. That’s a whole other post, I suppose.
Now that we have the text for the red label on our board, say we want to change it. That looks like this:
This time it’s a PUT request to /1/boards/xxxxxx/labelNames/red (where, once again, xxxxxx is the board’s ID). We use the optional $args argument of the request method to pass in a value of $text, where $text is the new label text.
What if you want to use that newly-renamed red label and apply it to a new card? That’s just a POST request to /1/cards.
We use the optional $args argument again to pass in our array of arguments. We set the name to whatever the value of $card_name is, idList is set to $list_id (the ID of the list the card will be added to), and the optional labels specifies that we’re applying just the red label to this new card.
Again, I could complain about using the color as an identifier but whatever.
Like my work with the Twitter API, this is hardly groundbreaking stuff. Just another thing I thought might be useful for people other than myself so I wrote it up.