Skip to content

Commit b74dcc7

Browse files
authored
Discord Social SDK 1.1 Release (#7467)
* Discord Social SDK 1.1 Release This PR includes changelog and related updates to documentation so it can be merged atomically. Details include: * The changelog for the release. * Updated mappings for doxygen docs. * Updated Provisional Account docs for Unity Services. * Added links on Provisional Account docs to all other services. * Add PlayStation4 and Xbox One support to supported platforms list. * Trailing spaces cleanup. * Review updates. * Change date, so it displays on top.
1 parent 8031d49 commit b74dcc7

File tree

6 files changed

+106
-9
lines changed

6 files changed

+106
-9
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
title: "Discord Social SDK Release 1.1"
3+
date: "2025-04-16"
4+
topics:
5+
- "Discord Social SDK"
6+
---
7+
8+
A new release of the Discord Social SDK is now available, with the following updates:
9+
10+
### Platforms
11+
12+
- Added Xbox One and PS4 console support
13+
14+
### Auth
15+
16+
- Added support for Unity Services as an external auth provider
17+
18+
### Voice
19+
- [`Client::StartCallWithAudioCallbacks`] now permits sample data to be modified during record and
20+
playback for custom effects processing
21+
- Fixed a bug where the speaking state for a user could be stuck in the "on" state
22+
- Added [`Call::GetPTTReleaseDelay`]
23+
- Initialization of the voice engine is now delayed until it's needed
24+
- Fixed a deadlock with the Linux PulseAudio backend where malfunctioning audio devices could cause a voice engine
25+
lockup
26+
27+
### Rich Presence
28+
29+
- Added support for sending rich presence updates and invites without connecting to the Discord gateway on desktop
30+
31+
### Misc
32+
33+
- Added Linux support for [`Client::RegisterLaunchCommand`] and
34+
[`Client::RegisterLaunchSteamApplication`]
35+
- Fixed a crash when a Unity Editor scripting domain reload (e.g. entering/exiting play mode) happens while an async
36+
completion callback is pending
37+
- Fixed [`Client::RemoveDiscordAndGameFriend`] only working if you're Discord friends
38+
- Reduced some log spam from desktop client RPC message handling
39+
40+
The Discord Social SDK binaries are available for download in the Developer Portal after enabling the Discord Social SDK
41+
for your application.
42+
43+
To learn more about building with the Discord Social SDK, check out
44+
the [Discord Social SDK Overview](#DOCS_DISCORD_SOCIAL_SDK_OVERVIEW).
45+
46+
<!-- Autogenerated Reference Links -->
47+
[`Call::GetPTTReleaseDelay`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Call.html#ab8dc6b1527728fecb17f266d5b3e9e6e
48+
[`Client::RegisterLaunchCommand`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a024d7222931fdcb7d09c2b107642ecab
49+
[`Client::RegisterLaunchSteamApplication`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a45b2c791c5b06f77d457dacb53dfba40
50+
[`Client::RemoveDiscordAndGameFriend`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#aa6d393a3d98ec5d06faef49a57d1a89b
51+
[`Client::StartCallWithAudioCallbacks`]: https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#abcaa891769f9e912bfa0e06ff7221b05

docs/discord-social-sdk/core-concepts.mdx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,12 @@ The Discord Social SDK is available for the following platforms:
7272

7373
### Console (full console support & guides coming soon)
7474

75-
- **Xbox Series X|S**
75+
76+
- **Xbox Series X|S and Xbox One**
7677
- Standalone C++
7778
- Unreal Engine
7879
- Unity
79-
- **PlayStation5**
80+
- **PlayStation5 and PlayStation4**
8081
- Standalone C++
8182
- Unreal Engine
8283
- Unity

docs/discord-social-sdk/development-guides/using-provisional-accounts.mdx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import SupportCallout from '../partials/callouts/support.mdx';
1010

1111
## Overview
1212

13-
Provisional accounts let players use Social SDK features in your game without linking a Discord account so all players can have a consistent gameplay experience.
13+
Provisional accounts let players use Social SDK features in your game without linking a Discord account so all players can have a consistent gameplay experience.
1414

1515
With provisional accounts, players can:
1616

@@ -25,7 +25,7 @@ This guide will show you how to:
2525

2626
1. Set up provisional accounts for your game
2727
2. Create and manage provisional accounts
28-
3. Handle account merging when users want to upgrade to full Discord
28+
3. Handle account merging when users want to upgrade to full Discord
2929

3030
## Prerequisites
3131

@@ -121,7 +121,7 @@ The callback function will be invoked with an access token that expires in 1 hou
121121

122122
You can use [`Client::SetTokenExpirationCallback`] to receive a callback when the current token is about to expire or expires.
123123

124-
> info
124+
> info
125125
> When the token expires, the SDK will still receive updates, such as new messages sent in a lobby, and any voice calls will continue to be active. However, any new actions, such as sending a message or adding a friend, will fail. You can get a new token and pass it to UpdateToken without interrupting the user's experience.
126126
127127
#### Provisional Account Access Token Storage
@@ -140,6 +140,7 @@ If you are not using the [`Client::GetProvisionalToken`] method, you'll need to
140140
| STEAM_SESSION_TICKET | A Steam auth ticket for web generated with discord as the identity |
141141
| EPIC_ONLINE_SERVICES_ACCESS_TOKEN | Access token for Epic Online Services. Supports EOS Auth access tokens |
142142
| EPIC_ONLINE_SERVICES_ID_TOKEN | ID token for Epic Online Services. Supports both EOS Auth + Connect ID tokens |
143+
| UNITY_SERVICES_ID_TOKEN | Unity Services authentication ID token |
143144

144145

145146
```python
@@ -192,9 +193,17 @@ Common error codes and solutions for the GetProvisionalToken method:
192193

193194
Using these credentials, we'll create a limited Discord account just for your game and try to set the username for you according to the following:
194195

195-
- For OIDC, a provisional account's display name will be the value of the preferred_username claim, if specified in the ID token. This field is optional and should be between 1 and 32 characters. If not specified, the user's display name will default to the user's unique username, which Discord generates on creation.
196-
- For Steam session tickets, the display name of the user's Steam account is used as the provisional account's display name.
197-
- For EOS Auth Access Tokens or ID Tokens, the name of the user's Epic account is used as the provisional account's display name. EOS Connect ID Tokens do not expose any username, and thus the game will need to configure the display name with [`Client::UpdateProvisionalAccountDisplayName`].
196+
- For OIDC, a provisional account's display name will be the value of the `preferred_username` claim, if specified in
197+
the ID token. This field is optional and should be between 1 and 32 characters. If not specified, the user's display
198+
name will default to the user's unique username, which Discord generates on creation.
199+
- For [Steam session tickets](https://partner.steamgames.com/doc/features/auth), the display name of the user's Steam
200+
account is used as the provisional account's display name.
201+
- For [EOS Auth](https://dev.epicgames.com/docs/epic-account-services/auth/auth-interface) Access Tokens or ID Tokens,
202+
the name of the user's Epic account is used as the provisional account's display name. EOS Connect ID Tokens do
203+
not expose any username, and thus the game will need to configure the display name with
204+
[`Client::UpdateProvisionalAccountDisplayName`].
205+
- For [Unity Services ID Tokens](https://services.docs.unity.com/docs/client-auth/),
206+
the display name of the user's Unity Player Account is used as the provisional account's display name.
198207

199208
If you'd like to set the display name for a provisional account, you can use the [`Client::UpdateProvisionalAccountDisplayName`] method.
200209

@@ -390,7 +399,7 @@ Now that you've set up provisional accounts for your game, you can explore more
390399
</Card>
391400
<Card title="Setting Rich Presence" link="#DOCS_DISCORD_SOCIAL_SDK_DEVELOPMENT_GUIDES_SETTING_RICH_PRESENCE" icon="UserStatusIcon">
392401
Display game status and information to Discord friends.
393-
</Card>
402+
</Card>
394403
</Container>
395404

396405
<SupportCallout />

package-lock.json

Lines changed: 28 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,8 @@
5151
"tsx": "^4.10.2",
5252
"typescript": "^5.4.5",
5353
"typescript-eslint": "^8.0.0-alpha.12"
54+
},
55+
"dependencies": {
56+
"xml2js": "^0.6.2"
5457
}
5558
}

tools/doxygen/social-sdk-mappings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
"discordpp::ActivityInvite::SetApplicationId": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ActivityInvite.html#a660bc6a697802fae9a3bdc3f11c8ed6b",
5050
"discordpp::ActivityInvite::PartyId": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ActivityInvite.html#ab4d0b0ccc568941375458518fb571176",
5151
"discordpp::ActivityInvite::SetPartyId": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ActivityInvite.html#ad538b78267ff9114f43244e3eb28f92e",
52+
"discordpp::ActivityInvite::SessionId": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ActivityInvite.html#a0c947f356db2b20a68a9ad536bbd4f5c",
53+
"discordpp::ActivityInvite::SetSessionId": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ActivityInvite.html#a2a5326a8dbca7f97509dc7c1fc21a25a",
5254
"discordpp::ActivityInvite::IsValid": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ActivityInvite.html#a92e24e683870b13e8f464d6b93312433",
5355
"discordpp::ActivityInvite::SetIsValid": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ActivityInvite.html#a204f3077312a695ec2fea5f3f1430c2d",
5456
"discordpp::ActivityParty::ActivityParty": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1ActivityParty.html#a791f8f4407e9c1d91dc99c71cb135457",
@@ -134,6 +136,7 @@
134136
"discordpp::Call::GetParticipants": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Call.html#acbbbfad47511535755cb55631a8c9922",
135137
"discordpp::Call::GetParticipantVolume": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Call.html#aeff7fa60c6029ffde272160bf1f16748",
136138
"discordpp::Call::GetPTTActive": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Call.html#a48e2d2809e8787178bec44c946b31328",
139+
"discordpp::Call::GetPTTReleaseDelay": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Call.html#ab8dc6b1527728fecb17f266d5b3e9e6e",
137140
"discordpp::Call::GetSelfDeaf": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Call.html#a7ea04973139a803d198661874eb13786",
138141
"discordpp::Call::GetSelfMute": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Call.html#ad2305065d5e633678c9242ed886e65e2",
139142
"discordpp::Call::GetStatus": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Call.html#ad614dfd6578370a0d9b73b40db1e780f",
@@ -237,6 +240,7 @@
237240
"discordpp::Client::Connect": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a873a844c7c4c72e9e693419bb3e290aa",
238241
"discordpp::Client::Disconnect": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a115b0be168a18da1119e522abaa92106",
239242
"discordpp::Client::GetStatus": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#aff09cced22a1b08cbd85b3ef25aa5f22",
243+
"discordpp::Client::SetApplicationId": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#ad452335c06b28be0406dab824acccc49",
240244
"discordpp::Client::SetLogDir": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a23bd5802dfa3072201ea864ee839c001",
241245
"discordpp::Client::SetStatusChangedCallback": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a9d0e8824570b93149d5d1c65bb3fb97f",
242246
"discordpp::Client::SetVoiceLogDir": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a48c6b7e8bbc2b632a935acafc6a5f7a7",
@@ -296,6 +300,7 @@
296300
"discordpp::Client::Client": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a302dda8b19408696fa186e739c5c24c8",
297301
"discordpp::Client::operator=": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a8c02c2584b09be381cb519ec8951ebcc",
298302
"discordpp::Client::operator bool": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#ad35d2a626e64f4313883ce22cd45efb7",
303+
"discordpp::Client::GetApplicationId": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#abe66dd4bf3cbc27961d41e8e11015ff5",
299304
"discordpp::Client::ErrorToString": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#ab40c4c45450eb5d5f14346612b57ddae",
300305
"discordpp::Client::GetDefaultAudioDeviceId": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a91c6f22803d437153ad192f3395ac47c",
301306
"discordpp::Client::GetDefaultCommunicationScopes": "https://discord.com/developers/docs/social-sdk/classdiscordpp_1_1Client.html#a71499da752fbdc2d4326ae0fd36c0dd1",

0 commit comments

Comments
 (0)