|
Web & Mobile Team
|
Edited by Straton on 12/14/11 10:47 AM (PST)
Please use this thread to ask any questions about the Third-Party API Usage Policy. Answered questions will be summarized for easy finding.
What impact does this have on getting an API key? A copy of and link to this policy will be provided when an API key request is approved and the key provided. Does this mean that the backend code of all web applications must be open sourced or are we talking about the html/javascript here? The short answer is yes. The long answer is no, what you should do is extract the code that engages the API into a client library that satisfies the requirements of the policy. |
#1
12/14/2011
|
Application code must be completely visible. Does this mean that the backend code of all web applications must be open sourced or are we talking about the html/javascript here? Applications may make up to a total of 50,000 authenticated requests per day. Is there a way to know how much requests we've made at any given time? I'm still trying to understand if AH dumps downloads are considering a request or not, given that they are static files. Additionally, do you count requests that make good usage of "If-Modified-Since"? |
|
Web & Mobile Team
|
Edited by Straton on 12/14/11 10:47 AM (PST)
The short answer is yes. The long answer is no, what you should do is extract the code that engages the API into a client library that satisfies the requirements of the policy.
We currently don't expose an API resource that tells you an application's current point allocation. We'd like to, but haven't yet. The "cost" of requests is fairly simple. Each API request costs 1 to 5 points, depending on how heavy the operation is and load. Requests that use cache headers cost less and those that use cache headers that result in a cache-hit cost only 1 point. Requests for static files, like for the auction house dumps, have a cost of 0 because from our point of view they are not part of the API. |
#3
12/14/2011
|
Just to be 100% sure I understand your answer. When you say "that engages the API", do you mean the code that connects to battle.net and downloads data or any code that touches that data at all (i.e. downloading, processing, reporting, etc...). Applications may not charge premiums for features that use the API. What about charging users a fee for features that cost us money. A good example would be a SMS notification system. Let's say I have to pay 5 cents per SMS I send out to users who subscribe to the service. Is it OK to ask that user to pay those fees, considering he's not really getting access to any data another doesn't have access to. |
Ok so: http://us.battle.net/api/wow/realm/status == 1 point http://us.battle.net/api/wow/auction/data/sentinels == 1 point http://us.battle.net/auction-data/7c7ba228f010890c849e038ee61f4375/auctions.json == 0 point Am I getting this right? |
|
Web & Mobile Team
|
The opening section and "Intended Audiance" describes what constitutes an application in this context. |
#6
12/14/2011
|
|
Web & Mobile Team
|
Ok so: More or less. The cost of getting the realm status could be greater than one, but is reduced to 1 if you uses HTTP cache headers and the request resulted in a cache hit. The same holds true with the second API resource request. |
#7
12/14/2011
|
I'm still unsure which part of my code I have to open source. I have no problem playing nice with Blizzard's policy but I need to understand exactly what's expected. |
|
Web & Mobile Team
|
If you have specific questions relating to your codebase, you should probably contact api-support@blizzard.com. |
#9
12/14/2011
|
Any clarification on this point? I'd like to use text messaging in my application as well, and it's certainly not something I could fund out of my own pocket. |
Email sent.
Something nice would at least be a response header like 'X-Api-Cost: 1' so that we can track those on our end. I find it a little unfair to be told "Use no more than X amount of requests/points" but not be given a way to track the usage and throttle things on my own if needed. |
|
Edited by Nill on 12/14/11 12:56 PM (PST)
I think you guys are being over-bearing in your control over 3rd party apps which are community driven both in creation and popularity. These aren't the same as in-game addons.
I realize there are considerations behind each aspect of the policy, but I believe you are underestimating the ability of the community to self-police. By creating One-Size-Fits-All policies like this, you are stifling creativity and dissuading possible developers from even bothering to invest time and money into creating tools built around your game lest they get into a legal struggle with you or risk you just cutting them off completely. It's your game and your servers giving the api data, so you can be as heavy handed as you want, but I still think you guys have made the wrong call and I think in the long run the community will be less well-off because of these types of policies. I also believe in-turn this means the game will be less well-off, which again in-turn means less money in your pocket. - A passionate fan. |
|
|
The client library I'm putting together uses Spring's RestTemplate and the MappingJacksonHttpMessageConverter to do all the conversion into Java objects, and as such the code created by me is minor (Java based Domain objects, and data access objects that map the 'GET' functions to their appropriate api path) and some Spring configuration files. Should I include the Spring configuration files with my Library? |
|
Web & Mobile Team
|
The client library I'm putting together uses Spring's RestTemplate and the MappingJacksonHttpMessageConverter to do all the conversion into Java objects, and as such the code created by me is minor (Java based Domain objects, and data access objects that map the 'GET' functions to their appropriate api path) and some Spring configuration files. Should I include the Spring configuration files with my Library? To satisfy the policy? Probably not. Although, it sounds like it would be a very helpful thing to include in client libraries. |
#15
12/14/2011
|
|
Edited by Potatoedecay on 12/14/11 2:22 PM (PST)
I am a happy customer using the Wow Mobile Armory.
I am a happy customer using the AskMrRobot mobile app. The whole purpose of an API is to leverage the innovation of others. This policy disallows profit, which disincentivizes innovation. -- Respectfully, https://twitter.com/potatoeWoW |
|
|
The API library thing is confusing, still.
If I use someone else's third party library to talk to the Community Platform API, do I then have to publish another copy of that library? Or my entire app? Or just point people at the library? |
From what I understand (and taking for account that the library in question is already open sourced), you only need to link to it. What Blizzard appears to want to be able to look at is any code that interacts with their server. Not your site code. But that's as unofficial as it gets. |
|
|
The clarification about what should be open sourced / publicly viewable is much appreciated. When I originally read that it had me worried thinking I'd have to open up all the back-end code.
My concern now though is over revenue. Reading the policy, it looks like no form of payed apps or services are allowed at all. Is this correct? Two examples: An iOS app that interacts with the Blizzard API and developer's servers that let's you create a wish list of gear that's sold for a buck. A web site that gathers character information from the API and offers basic free service X, but for some amount of money can be upgraded to extend features. Are both of those examples prohibited? I guess my direct question is this: developing even simple applications or cool web services require time and money on the part of the developer, what are our options for recouping those costs. I'm not suggesting someone should be out to make a living off this, but if you make a cool web-app that gets popular with the community the hosting costs alone can get pretty high and standard ad banners are probably not going to cover the costs. Any response would be appreciated and thanks for the hard work! |
