Steam Web API

Discussion and feedback on Construct 2

Post » Wed May 28, 2014 11:58 pm

Ive just been learning a bit about Steams own Web API as a possible alternative to the Greenworks thing those Game Dev Tycoon guys made. @Ashley is this something you've had a chance to look at in any facet - it seems it's possible to pipe in to Steamworks features directly via their Web API. Here's a quick bit of info without violating any specifics in the NDA:

Steam exposes an HTTP based Web API which can be used to access many Steamworks features. The API contains public methods that can be accessed from any application capable of making an HTTP request, such as game client or server. The API also contains protected methods that require authentication and are intended to be accessed from trusted back-end applications.

As an example, Web API methods are commonly used by a secure publisher server to:

[*]Verify a Steam user's credentials with that server
[*]Check if a user owns a particular application
[*]Set or retrieve a user's stats, achievements or leaderboard scores
[*]Execute an in-game purchase

This honestly seems like the answer to those of us with games either out or coming out on Steam in the near future.. Im curious if it's something the Construct team has had a chance to look at in any facet?

I'll be looking into it myself as well, but would love to know any thoughts on the potential this might have.
Made Cosmochoria - www.cosmochoria.com
Currently working on Slayaway Camp - www.slayawaycamp.com
B
27
S
8
G
3
Posts: 384
Reputation: 5,020

Post » Thu May 29, 2014 1:13 am

Execute an in-game purchase? Where did you hear about it?
B
99
S
35
G
29
Posts: 3,139
Reputation: 28,421

Post » Thu May 29, 2014 3:04 am

Its in the Steamworks developer area, once you're approved as a steam dev (greenlight, etc) you have access to the API / documentation and the Steam Web API is outlined there.
Made Cosmochoria - www.cosmochoria.com
Currently working on Slayaway Camp - www.slayawaycamp.com
B
27
S
8
G
3
Posts: 384
Reputation: 5,020

Post » Thu May 29, 2014 3:35 pm

As far as I can tell from their documentation, the Web API only allows read-only access to a very limited set of user details: friend lists, already completed achievements, and a few other things. There does not appear to be any way to do something useful like submit an achievement, so I'm not sure there's much point in implementing it.
Scirra Founder
B
399
S
236
G
89
Posts: 24,519
Reputation: 195,351

Post » Thu May 29, 2014 3:49 pm

@Ashley It definitely does have another secure method and batch of other commands you can use that include stuff like submitting achievements, doing DLC purchases, submitting to leaderboards, etc -- it requires creating a Publisher API key for the app first though:

----

API Keys
Some Web API methods return publicly accessible data and do not require authorization when called. Other methods may require clients to register for an API key and pass that in using the key parameter. There are also methods that return sensitive data or perform a protected action and require special access permissions. These APIs require a publisher key, which you will need to create before calling these APIs. To create one of these keys, please see Creating a Publisher Key below. If you don't require access to these special methods, you can register a regular API key from the registration page on the Steam Community.

----

Check out the Web API documentation within the partner site itself: https://partner.steamgames.com/documentation/webapi
Made Cosmochoria - www.cosmochoria.com
Currently working on Slayaway Camp - www.slayawaycamp.com
B
27
S
8
G
3
Posts: 384
Reputation: 5,020

Post » Thu May 29, 2014 5:11 pm

It looks like the Web API is designed to run from a "publisher server" (i.e. you need to code a server to handle the actual web requests), which is not an ideal fit for a client-only game engine intended for use by non-programmers.
Scirra Founder
B
399
S
236
G
89
Posts: 24,519
Reputation: 195,351

Post » Thu May 29, 2014 6:52 pm

@Ashley I simply can not express how bummed out that makes me.

Simply put, is there is zero possibility this will be useful / usable for Construct 2? Ill do any legwork required including but not limited to setting up said necessary server, and am sure I could team up with other Construct 2 devs with stuff on steam to cover costs.
Made Cosmochoria - www.cosmochoria.com
Currently working on Slayaway Camp - www.slayawaycamp.com
B
27
S
8
G
3
Posts: 384
Reputation: 5,020

Post » Thu May 29, 2014 8:58 pm

Well hopefully the greenworks thing will work out after the node version stabilises, and that will have the bonus of working without an internet connection. You could still experiment with the Web API using the Javascript SDK, but I would rather go with greenworks for official support.
Scirra Founder
B
399
S
236
G
89
Posts: 24,519
Reputation: 195,351

Post » Thu May 29, 2014 9:25 pm

Fair enough - thank you so much Ashley. If money helps bring a solution faster, please let me know. The potential for our games success increases exponentially with those additional features (steam achievements, leaderboards, stats, even the card drops and backgrounds / emoticons) I see it as a very smart investment and im sure im not the only one.

respect.
Made Cosmochoria - www.cosmochoria.com
Currently working on Slayaway Camp - www.slayawaycamp.com
B
27
S
8
G
3
Posts: 384
Reputation: 5,020

Post » Fri May 30, 2014 2:03 am

@Ashley, I think it's actually possible to set achievements using the Steam Web API -- i just heard back from someone at Valve who posted this:

Caveat: I don't know anything about Node-Webkit, Construct 2 or Greenworks.

The Steam API is a REST API, so if you know how to call any other REST API, you should be able to interact with the Steam Web API in the same way. Just need to pass the Web API key for your app.

If you haven't already viewed the list of available functions, use http://api.steampowered.com/ISteamWebAP ... =json&key={replacewithyourkeyhere} and that'll give you back everything you can call.

E.g. SetUserStatsForGame should let you set the achievement (by steamed, appid, name of achievement, etc.). GetPlayerAchievements will give you the achievements for a player, etc.


I checked the url he provided and entered the Publisher API key I created in the 'groups' section of the Steamworks partner site and lo and behold theres a mega list including a butt tonne of Steam functions available....

My heart is beating wildly... Can this be used to build a Construct 2 plugin to post stuff to Steam? I can honestly say if someone built the initial plugin to post say a high score, i could likely figure out the rest and get the other steam functions done up myself, ASAP style.
Made Cosmochoria - www.cosmochoria.com
Currently working on Slayaway Camp - www.slayawaycamp.com
B
27
S
8
G
3
Posts: 384
Reputation: 5,020

Next

Return to Construct 2 General

Who is online

Users browsing this forum: No registered users and 7 guests