More integrations!

Hey dear TeamSpeak-Forum,

i’ve a question: Come more integrations in the future, as with Twitch

For example, YouTube, that you get a server group, who you are subscriber or member.
Or with Twitter: Only with followers

Discord has had such a function for a long time (Teamspeak is still better!)

And to all those who don’t know what I’m talking about:
If you’ve linked Twitch to your myTS Acc, you can give server groups to followers, Tier 1/2/3!
And I would also like to use this function with other platforms

9 Likes

Hey NoNamePro0,

i like the idea of more integrations in MyTeamSpeak. If you have more details in mind i would appreciate it if you could share it with us. Or even other platforms.

6 Likes

Mixer :upside_down_face:

6 Likes

I wasn’t even aware that they offer an API.
But they do and it also contains features like subscriptions. So yeah good catch.

5 Likes

I wasn’t either. It was the first thing that came to my mind when I read your answer. :stuck_out_tongue:

4 Likes

Yes, i have two ideas:

the easiest: Twitter (Twitter Developers)

YouTube, but i havn’t found a api, only the Google Developers Console and maybe this for subscriptions

Thank you, @Hubert and the entire Community :3

5 Likes

@NoNamePro0 do you see a special use case for a Twitter integration? There is a way to query follower by ids, But maybe there are more information that could be useful.

Afaik there is no option to check memberships. That’s a bit unfortunate, but at least subscriptions are public.

2 Likes

Server group for confirmed steam group

5 Likes

Neat idea that will result in hundreds of mostly worthless server groups.

Don’t know how you, but I prefer having no more than 3 SGs, 1 or 2 is enough. More SGs means more unnecessary icons that create junk are are unreadable (sexes, ages, dozens of games which no one cares, etc., etc.)…

3 Likes

Ok, I could use the two options (Twitter Followers & YT subscribers) very well.
I don’t need any other integrations now, but maybe other users.

@_ニャー_3 I will probably use the Twitter function to verify myself (to get into the talk channels).

2 Likes

If the only thing about integrations would’ve been getting into some channels (which for example look if someone’s Twitter or YT handler is in access list for that channel) then OK. But if integrations bring ability to create worthless groups, then just pass it off.

Less junk, better server…

2 Likes

Emphasis by me.

3 Likes

You can configure server groups without any icon. The icons are just a way to easily identify a user’s server group membership without having to refer to the info frame every time.

You could have a ton of groups which merely act as ACL. And if you raise the power requirements for assigning those groups beyond the power every user has, the current beta client will actually remove them from the context menus and they can only be assigned by the corresponding integration.

You also don’t have to use distinct groups for each integration. You could combine all of them into a generic “Follower” group that is granted if the user subscribes / follows / joins / whatever on any of the supported platforms.

Of course, server owners need to remain in full control of this setup and I think this is what you were talking about.

You don’t want any integration to mess with your carefully designed server group setup all by itself.

5 Likes

i think twitch and youtube integration is a good idea :smiley:
and maybe steam, but the others… hmm :thinking:

3 Likes

You nailed it with understanding!

So, what if this ”Follower” Server Group would’ve been an integrated, permanent, default SG that is given to someone that’s following you? It would’ve been fully editable, but in the same time you wouldn’t have been able to delete it (like Server Admin group and so on).

That way you have your followers in separate group and also no one like me would say that there are to much groups. Neat and clean.

1 Like

How about a client-side steam integration?
Kind of like this:

  • You link your Steam Account to your TS client (Like this “Log in through steam” thing)
  • The client sends the SteamID to the TS server
  • Query bots can get the auth token and work with it (maybe like a MyTS ID in ServerQuery?)

The way I see it, this enables query bots (and soon bots over web API) to check clients steam groups, check their games, maybe even check the user’s team inside a game, what ever you want to do with it.
You dont even have to have a steam group follower integration built-in, because it can easily be done with bots. If we get the user’s SteamID that is.

Of course users should be able to enable steam integration, but disable it on certain servers.
This could probably be done by a plugin as well, but not without major setup work on the server side, by having to run a second server dedicated to receiving requests by the client.

It would be way easier if the TS client just sent that steamID for the user account to the server.

5 Likes

Hey @Whookie

That is somewhat similar to one of the designs we did for the Twitch Integration. The reason why we decided that this is not possible for us, is because of proper authentication (this includes our “company id”) and that we can not handle a request limiting when a client or server is doing the query. For example the Twitch API just allows 2 requests per second from one specific client ID. So a centralized solution helps us to manage queries better and protect us from impersonation.

And yes you are talking about Steam, but afaik they work pretty similar.

Thank you for your proposal, i really like it!

5 Likes

I found a thread (for PHP, but the language doesn’t matter here)

I have not tested this, but you could probably cache the ID, make it available via the Server Query and have bots access it from there. Those who want to create a bot can just get a Steam Web API key and then a SteamID is enough. This way you probably have to authenticate the client only once per session, maybe even just once ever. Not sure if you get a SteamID or OID, but either will suffice.

But if you want to integrate it I am sure you can find a solution.

4 Likes

Yesterday evening i took a deeper look at the Steam Api, especially the authentiaction system.
To query user information you need besides an App-ID a PublisherKey. This key is a secret account bound key and has to be treated like a password. With that in mind a TeamSpeak Client or Server will never have access to this key.

Even if we just query public info from the api there is a 100k request limit per ip per day, which should be more then enough. But keep in mind that a person could extract the information from the client/server and spam request to the api and get our App-ID or even worse our App-Group banned.

We can not orchestrate non selfhosted services good enough to ensure a proper and working setup.

6 Likes

Yesterday evening i took a deeper look at the Steam Api, especially the authentiaction system.
To query user information you need besides an App-ID a PublisherKey. This key is a secret account bound key and has to be treated like a password. With that in mind a TeamSpeak Client or Server will never have access to this key.

Even if we just query public info from the api there is a 100k request limit per ip per day, which should be more then enough. But keep in mind that a person could extract the information from the client/server and spam request to the api and get our App-ID or even worse our App-Group banned.

Well every one can get a api key for steam ( Sign In ) and yea, the limit is 100k requests per api key per day which is enough for one server.

Example: Server owner “A” get a own api key for his server only (from his main steam account or a smurf (need to spend at least 5€ in Steam to get the api unlocked)) and save it for his server / virtual server. So he got 100k requests per day for his users.

About the api call: http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=XXXXXXXXXXXXXXXXXXXXXXX&steamids=76561197960435530

Results:

{
“response”: {
“players”: [
{
“steamid”: “76561197960435530”,
“communityvisibilitystate”: 3,
“profilestate”: 1,
“personaname”: “Robin”,
“profileurl”: “Steam Community :: Robin”,
“avatar”: “https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4.jpg”,
“avatarmedium”: “https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4_medium.jpg”,
“avatarfull”: “https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4_full.jpg”,
“personastate”: 0,
“realname”: “Robin Walker”,
“primaryclanid”: “103582791429521412”,
“timecreated”: 1063407589,
“personastateflags”: 0,
“loccountrycode”: “US”,
“locstatecode”: “WA”,
“loccityid”: 3961
}
]
}
}

You can fetch up to 100 steam ids per call so you can query 10.000.000 users per day with one api key.

About the Steam OpenID: This is also possible with a privat api key, no Paid AppID / Publisher Key is needed for this and 100k requests is enough for a server to handle this. Source: Steam Community :: Steam Web API Documentation & GitHub - SmItH197/SteamAuthentication: A simple PHP Authentication that enables steam users to log into their steam account to access content!

So for a integration of Steam OpenID, the server owner just need a privat api key. The server can count all requests and cache the results if needed (no need to refresh a user profile every time). I don’t see any problem with that.

About the Spam: Whats the problem with spam? Sure, a user can spam login on the OpenID but the server can cache the results and block the user ip if needed. Even if the 100k request limit is reached, you only get a api key ban (and only for that server/virtual server with that personal key, not global!). Many sites uses the OpenID System and don’t have any problems with spam or a banned key.

I got a working Steam ↔ TeamSpeak ↔ Riot Games connection. Works without any problems. You only need to setup the connection between Steam and TeamSpeak (and Riot Games) one time. The server just save this: TeamSpeak Database ID: xxx, SteamID: YYY, RiotGames ID: ZZZ. No more login needed after that. All Bots can now fetch the user profile with the Public SteamID and do stuff with it (100 SteamIDs per Call to get the current steam profile).

@Hubert If you want i can show you more about that connection and how it works.

10 Likes