Today I failed a little bit. I wanted to spend an evening creating an app that would ease my job by replying to repeating questions about Figma on the community I'm managing. I was happy to discover that the API of the platform it's on has some methods to post messages to threads.
I got excited, created a new project on Glitch, and started coding. First of all I remembered how to send and fetch data from APIs, and created a simple wrapper for the interface I wanted to use. I was able to get a callback when someone posts a message — so cool! Next up, I had to retrieve the profile information because apparently that callback only gave me the id of the person who asked a question.
It had to be a simple task — just fetch some basic profile info. Fortunately there is a method for that. However, when I run it, it failed with the error, “You don't have access to this command with service token”. Ok, so the problem is in the token! I made a research and found that you can do it with any kind of token. So what was the problem? Why didn't I have access?
Writing meaningful error messages is so difficult for developers for some reason! They can build things that are so cool and shiny, but when it fails you don't even know why.
The problem was simple: I made a typo in the method name. Instead of users.get I wrote user.get. Such a simple mistake and a hour wasted! Let's catch up, what were we doing? Oh, yea, now we need to create a message of some sort to reply to the comment we just received.
I tried Wit.ai, and it looks awesome. I will have to play more with it in the future. I tried to train my model a bit and see how it works, and it worked great, so I left it for now and decided to learn to post messages first. It wasn't difficult to implement having a dead-simple API wrapper already.
When I tried to post a message, it failed with an error. After a bit of Googling, I realized that I need a personal access token for that. So I tried to simulate the login session, but it didn't work. Something was always going wrong with this thing! Next I dug the documentation even more, and found a way to register my app to make it work for their OAuth endpoint.
One of the most difficult things was to find out that I have an “old” session therefore I cannot receive access tokens. It failed with another meaningless error when that happened.
Surprisingly, I was able to get it after some time. I was able to read comment data and profile data of a person who is sending it. However, the next barrier proved to be a dead end: it is not possible to write comments form a server, therefore I can get instant notifications when someone answers a question, but I cannot reply!
It still might be worth it, because it's a nice way to collect data to automate this process even more in the future.