Qt DevNet Web Service API
Does QtDN provide a webservice API of any sort? I am asking because I was wondering if it would be interesting to you all to have either a plugin for qt-creator and/or a stand-alone app that provides access to QtDevNet.Within qt-creator, this could be integrated into "Welcome" mode or indeed appear as it's own "Community/QtDN" mode.
I do not have any mockups or anything yet. I am just toying with the concept at present.
It would indeed be a good idea. :-)
I am thinking of having updates (notifications of new posts, threads etc.) displayed directly in the app (or plugin) rather than having to wait for notification emails to arrive as one nice feature.
There is an API, which is used by vass' chrome plugin.
Additionally, you have the rss feeds.
The more I think about it, the more I think that this could be a good way to reach more people in the community - especially if done as a plugin to qt-creator. I know several users of qt-creator who do not really use QtDN. Such a plugin would provide them with a way in and provide greater visibility as well as providing a way of quickly asking for or providing help.
Gerolf: Ah OK thanks for that. I'll have a look at Vass' plugin.
The discussion about it was in "this thread":http://developer.qt.nokia.com/forums/viewthread/2224/
I think, the API was described in "JIRA":http://bugreports.qt.nokia.com/browse/QTWEBSITE-137
Thanks Gerolf. I have just read both of those and have tried the API (using browser). Now to learn how to use QJson to parse the responses and get a proof of concept example working...
Marius if you happen to read this, is there a way to login to QtDN without scraping the various fields from the login form? Can I just submit a post request using QNAM directly? What fields are required in the post request?
[quote author="ZapB" date="1300203182"]Thanks Gerolf. I have just read both of those and have tried the API (using browser). Now to learn how to use QJson to parse the responses and get a proof of concept example working...[/quote]
I like the idea. :) I have been toying with the idea of some integration into the "KDE Social Desktop":http://techbase.kde.org/Projects/Social-Desktop resp. into the "Open Collaboration Services":http://www.freedesktop.org/wiki/Specifications/open-collaboration-services as well. It never really materialized though.
Currently, I am waiting for some proper documentation for the existing API from the developer who wrote it. As soon as I have that I'll make it available on the wiki. Maybe I should nag him a bit...
If you have suggestions for improvements while you play with the API, please let us know. :)
Thank you for that. I'll look forward to seeing the docs. I've nto made much progress yet as I was offline last week (son's birthday and decorating home office). I'll post back with API extensions that would be useful as I come across them.
I have had a couple of hours ot play around with this today. Here is the result of my tinkering so far:
!http://gallery.theharmers.co.uk/upload/2011/04/09/20110409200932-876ce30f.png(QtDevNet Profile Details)!
So far my simple test harness just uses QNAM to login to QtDN and then uses the web api described "here":http://bugreports.qt.nokia.com/browse/QTWEBSITE-137 to query my profile details. The main widget is a declarative view in which I have a simple qml scene that binds to properties of a C++ Profile object.
Could I put in a request for an addition to the profile api please? It would be very useful if it also returned an entry for the total number of points in this rank. That is the total number of points required to go from Robot Herder to Dinosaur Breeder for example. This would allow me to calculate a percentage towards next level value and show that in a progress bar without the need to hard-code the rank point boundaries.
Next I will start looking at the Unread Forum Posts api and see if I can make another qml component for that. I will also add in support for profile badges. I'll try to find some time tomorrow to make this little code available to anybody who is interested.
Eventually I would like to release a little QML based QtDevNet app for Symbian etc.
Oh another api request...would it be possible to have the url to the profile's avatar image returned in the profile call too please?
If anybody is interested, you can now download my little test harness from my subversion repository. Just do:
@svn co https://svn.theharmers.co.uk/svn/codes/public/qtdevnetclient/trunk qtdevnetclient@
Then build as normal. This project requires qjson to be available. If the compiler cannot find it then export QJSONROOT with the path to where qjson is installed and re-run qmake.
The test harness app now polls QtDN every 60 seconds for an update to your profile which is then relfected in the QML scene.
For now it is just functional. I'll add some bling later ;-)
Good stuff, and a QNAM login. You're on a roll ZapB :)
[quote author="ZapB" date="1302376861"]Oh another api request...would it be possible to have the url to the profile's avatar image returned in the profile call too please?[/quote]
I'll add it to the backlog, no room in the current iteration and filling up fast for the next.
It was surprisingly easy - only 453 lines of code plus a little QML so far. If I get something useful going then maybe you'll see a new user-agent string showing up in the analytics soon ;-)
@request.setRawHeader( "User-Agent", "ZapB's QtDevNet Client 0.1" );@
When I finish the next stage I may have some more API requests as that will likely be the much easier option as opposed to scraping fragments from a complete web-page. It will result in a lighter load on the server too.
Very nice! I like it. :)
I have so far not been able to compile it yet. QJson is failing to compile at this moment... :-(
Thank you. I'll keep adding little bits to it and post back again when it is usable for a little more than looking at your own points ;-)
@Andre, I am using qjson-0.7.1 which I installed via portage. I have not tried building it by hand.
Managed to build qjson (from git), and with some adjustments to your code (in the .pro file and in the include of qjson you use), I even managed to build the app. Trying to run it instantly crashes though, so I'll try for a bit more...