New EVE API project – Industry Tracker

Industry Tracker - Login Screen
Industry Tracker – Login Screen

About two weeks ago I have started a new project, which uses XML feeds from EVE API. The new app is supposed to be a new industry tracker for my corp, because the old one is not being maintained anymore. We could probably use DRK Industry Tracker for that, but our Directorship has raised some doubts regarding security, because our API information could potentially be available to a third party. A decision was made to develop an in-house solution.

I have already written an EVE API app in Java to view character data in the past, so I have volunteered to be the chief architect and developer of the new app, thinking that API holds no secrets from me. Of course I was very wrong, but I will get to that later.

An industry planner app will have several users, who need to have access to it. This forces either a client-server approach (which would be an overkill for an app like this) or web based approach. Since browser applications only run when they are being visited, I would need some way to keep API data complete and without any gaps.

That’s how the API poller was born

Poller algorithm
Poller algorithm

I needed to write a poller script, which could be run in crontab periodically. This way I could keep the live data complete and up-to-date, without the need for anyone to trigger the API update (by visiting app’s web page for example).

EVE API has some best practices, one of them being respecting cache timers (to prevent unnecessary load on API servers). Another one is not to poll a feed that returned a persistent error (for example permission denied). I took these two as the main guidelines for my API poller.

It takes some experimenting

I’ve mentioned that I was wrong to say that I know the EVE API well. Well, I was. According to the documentation on the official EVE Wiki, WalletTransactions.xml.aspx only takes three parameters:

keyID, vCode, characterID

It means that the actual call should look like this:

https://api.eveonline.com/corp/WalletTransactions.xml.aspx?keyID=12345&vCode=1a23f91d20c&characterID=12341234

That call will succeed. You will not get an error message, but a parseable XML file with no data in it.

After some research it turns out one needs to provide the accountKey, which corresponds to wallet division. Then and only then will the WalletTransactions feed return the actual data. So the correct call will be:

https://api.eveonline.com/corp/WalletTransactions.xml.aspx?keyID=12345&vCode=1a23f91d20c&accountKey=1001

Getting the data is not even half the trick

Industry Tracker - Timesheet
Industry Tracker – Timesheet

The EVE Static Data Dump is about 300 megabytes of data. The live information downloaded by the poller adds even more data to dig through. This means that the most important thing is analyzing, displaying and managing all this data. GUI has therefore several tasks:

  • authenticate users
  • authorize users
  • allow corp members to self-register in a secure manner
  • plan the industry tasks
  • track the industry tasks
  • run reports
  • view the static data dump information
  • enrich live data by connecting it with static data
  • manage settings and API keys

While it sounds simple, the majority of the work will be done here. Each of these bullet points will be broken into even more actions. Working application however, will help our corp make billions, so all the effort is well worth it.

EVE Online app you can send mails from

UPDATE: This post is very old and no longer accurate

CREST API released by CCP Games in 2016 allows sending and receiving evemails in third party apps.

At some point in the past I took some time to test all EVE Online apps available for iOS and Android. Since the publication of that post, many players have asked me about an app that allows SENDING evemails, and not just reading them. I have bad news for you: due to the limitations of the current EVE API, such app does not exist. But I also have some good news for you. It does not exist yet.

With Retribution, CCP is planning to release a new API (called CREST), which will certainly allow you to manage Contats and is very likely to allow sending EVE mails, too.

For the third party developers, the most valuable resource is the current documentation preview, which has already been made available.

Technical details

First big change is Authentication and Authorization mechanism, which the current API is missing (currently you need to authenticate every time by including apikey and vcode in every HTTP request you make). The new CREST API will let your app to log on once, using login.eveonline.com. This login server will grant an OAuth2 token, which will be used instead of api keys or other credentials. Moreover, CCP is adding some POST request besides the already existing GET requests. Data presentation layer will also be changed to utilize JSON, which I think is easier to use on web apps (for example in PHP or JavaScript), and should not give much trouble for other technologies (like iOS and Android). It is still up to CCP to decide which parts of the new API will offer “write” access, like sending EVE Mails or managing contacts.

One more thing

CREST is an acronym of Carbon REST. The Carbon technology is the new CCP framework that has been in use since Incarna, and REST means it’s a RESTful protocol (wiki). It will be released in Retribution expansion, so one might say it is a “Crest of Retribution“. Now this is what I found when googling it: http://us.battle.net/wow/en/item/13375. Coincidence? 😀

JAVA EVE API Reader gets Inferno 1.2 static data

The JAVA EVE API Viewer has just been updated with Inferno 1.2 data dump (so the Iteron Mark IV Amastris Edition shows just fine).

I will also try to provide a data dump conversion for Aura in the near future, so the finest EVE app for Android would finally be up to date with the new skills and items, which have been introduced in Inferno.

If you use Linux or Mac and are looking for an EVE Online character tracker, my App should meet your needs.

Download API Reader Launch JAVA EVE API Reader

Mobile apps for EVE Online on iOS and Android

companion-apps-all

» For Windows Phone 8 apps, please go to this post «

This post is a synergy of my interests. If you are a returning visitor, you have most likely noticed that I write not only about EVE Online, but also about all things mobile: tablet PCs, mobile operating systems and so on.

Smartphones have changed the mobile phone market forever: almost half of all the mobile phones nowadays are smartphones. With CCP giving the community an API to access the in-game information, it was just a matter of time until first EVE related third-party apps have arrived.

Most of the Apps available for the two biggest smartphone platforms, namely Android and iOS, can be divided into three large groups:

  • character tracker
  • market tracker
  • industry helper

Majority of these third-party apps are free, but some of them use ads and donations to cover developer’s costs.

Unfortunately I neither own a Windows Phone 7 device, nor have a working emulator of it, so this review will not cover WP7 apps. Sorry!

It is also worth mentioning, that CCP has plans to deliver their own mobile applications for DUST 514 and EVE in the near future. Developers did not reveal any specifics besides Neocom app for DUST 514, which will run on PS Vita and will deliver almost full interaction with the game, except for the core FPS gameplay. Neocom for PS Vita is said to allow managing fittings, accessing market and so on.

Read more about CCP plans for mobile devices:

Since this post is rather long, please click “Continue reading” –>

Read more

JAVA EVE API Reader update

I have just uploaded a new version of JAVA EVE API Viewer, which contains some bug fixes and a brand new Inferno 1.0 data dump.

(The Inferno 1.0 static data will become obsolete by this time tomorrow, because CCP will deploy Inferno 1.1. CCP  has postponed the rollout of Inferno 1.1. I will update the Static Data as soon as it is available.)

If you use Linux or Mac and are looking for an EVE Online character tracker, my App should meet your needs.

You can choose to download a ZIP archive, or launch the App directly, using JAVA Web Start.

Download API Reader Launch JAVA EVE API Reader