matterbridge/vendor/github.com/Philipp15b/go-steam
2020-10-11 23:07:00 +02:00
..
cryptoutil Add vendor (steam) 2017-06-22 01:00:27 +02:00
netutil Add vendor (steam) 2017-06-22 01:00:27 +02:00
protocol Update vendor (#1257) 2020-10-11 23:07:00 +02:00
rwu Add vendor (steam) 2017-06-22 01:00:27 +02:00
socialcache Update dependencies (#886) 2019-09-07 22:46:58 +02:00
steamid Add vendor (steam) 2017-06-22 01:00:27 +02:00
.gitignore Use mod vendor for vendored directory (backwards compatible) 2018-08-06 21:47:05 +02:00
.gitmodules Update vendor (#1257) 2020-10-11 23:07:00 +02:00
auth_events.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
auth.go Update vendor (#1257) 2020-10-11 23:07:00 +02:00
client_events.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
client.go Update dependencies (#886) 2019-09-07 22:46:58 +02:00
connection.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
doc.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
gamecoordinator.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
go.mod Update vendor (#1257) 2020-10-11 23:07:00 +02:00
go.sum Update vendor (#1257) 2020-10-11 23:07:00 +02:00
keys.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
LICENSE.txt Add vendor (steam) 2017-06-22 01:00:27 +02:00
notifications_events.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
notifications.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
README.md Update dependencies (#886) 2019-09-07 22:46:58 +02:00
servers.go Update dependencies (#886) 2019-09-07 22:46:58 +02:00
social_events.go Update vendor (#1257) 2020-10-11 23:07:00 +02:00
social.go Update vendor (#1257) 2020-10-11 23:07:00 +02:00
steam_directory.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
trading_events.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
trading.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
web_events.go Add vendor (steam) 2017-06-22 01:00:27 +02:00
web.go Add vendor (steam) 2017-06-22 01:00:27 +02:00

Steam for Go

This library implements Steam's protocol to allow automation of different actions on Steam without running an actual Steam client. It is based on SteamKit2, a .NET library.

In addition, it contains APIs to Steam Community features, like trade offers and inventories.

Some of the currently implemented features:

  • Trading and trade offers, including inventories and notifications
  • Friend and group management
  • Chatting with friends
  • Persona states (online, offline, looking to trade, etc.)
  • SteamGuard with two-factor authentication
  • Team Fortress 2: Crafting, moving, naming and deleting items

If this is useful to you, there's also the go-steamapi package that wraps some of the official Steam Web API's types.

Installation

go get github.com/Philipp15b/go-steam

Usage

You can view the documentation with the godoc tool or online on godoc.org.

You should also take a look at the following sub-packages:

Working with go-steam

Whether you want to develop your own Steam bot or directly work on go-steam itself, there are are few things to know.

  • If something is not working, check first if the same operation works (under the same conditions!) in the Steam client on that account. Maybe there's something go-steam doesn't handle correctly or you're missing a warning that's not obviously shown in go-steam. This is particularly important when working with trading since there are restrictions, for example newly authorized devices will not be able to trade for seven days.
  • Since Steam does not maintain a public API for most of the things go-steam implements, you can expect that sometimes things break randomly. Especially the trade and tradeoffer packages have been affected in the past.
  • Always gather as much information as possible. When you file an issue, be as precise and complete as you can. This makes debugging way easier.
  • If you haven't noticed yet, expect to find lots of things out yourself. Debugging can be complicated and Steam's internals are too.
  • Sometimes things break and other SteamKit ports are fixed already. Maybe take a look what people are saying over there? There's also the SteamKit IRC channel.

Updating go-steam to a new SteamKit version

Go source code is generated with code in the generator directory. Look at generator/README.md for more information on how to use the generator.

Then, after generating new Go source files, update go-steam as necessary.

License

Steam for Go is licensed under the New BSD License. More information can be found in LICENSE.txt.