Documentation Steamworks
Interface ISteamUser
Fonctions qui servent à accéder aux informations d'un compte Steam et à les manipuler.

C'est également ici que les API de Steam Voice sont visibles.

Fonctions membres

Les fonctions membres d'ISteamUser sont appelées par le biais de la fonction d'accesseur global SteamUser().

AdvertiseGame

void AdvertiseGame( CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer );
NomTypeDescription
steamIDGameServerCSteamIDCela doit être k_steamIDNonSteamGS si vous définissez l'adresse IP et le port, sinon, cela doit être k_steamIDNil si vous les effacez.
unIPServeruint32Adresse IP du serveur de jeu dans l'ordre de l'hôte, c'est-à-dire, 127.0.0.1 == 0x7f000001.
usPortServeruint16Port de connexion du serveur de jeu, dans l'ordre de l'hôte.

Définit les données de présence enrichie pour un serveur de jeu non sécurisé sur lequel joue la personne. Ceci permet à des contacts de consulter les infos de jeu et de rejoindre votre partie.

Lorsque vous utilisez le système d'authentification de Steam, cet appel ne sera jamais nécessaire, le système d'authentification définit la présence enrichie appropriée.

BeginAuthSession

EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID );
NomTypeDescription
pAuthTicketconst void *Ticket d'authentification à valider.
cbAuthTicketintTaille en octets du ticket d'authentification. Doit être la taille de pcbTicket fournie par l'appel qui a créé ce ticket.
steamIDCSteamIDSteamID de l'entité qui a envoyé le ticket.

Authentifiez le ticket du SteamID de l'entité pour s'assurer de sa validité et garantir qu'il n'est pas réutilisé. Veuillez noter que cette identité n'est confirmée que lorsque le rappel ValidateAuthTicketResponse_t est bien reçu et la valeur renvoyée est vérifiée comme une réussite.

Le ticket est créé pour l'entité avec GetAuthSessionTicket ou ISteamGameServer::GetAuthSessionTicket. Puis, il doit être communiqué sur le réseau pour validation par l'autre partie.

Ceci est enregistré pour les rappels ValidateAuthTicketResponse_t supplémentaires si l'entité passe hors ligne ou annule le ticket. Voir EAuthSessionResponse pour plus d'informations.

Lorsque la session multijoueur prend fin, vous devez appeler EndAuthSession.

Éléments renvoyés : EBeginAuthSessionResult
Déclenche un rappel ValidateAuthTicketResponse_t.



Consulter également : Authentification des comptes et vérification de la possession d'une application

BIsBehindNAT

bool BIsBehindNAT();
Vérifie si la personne actuelle semble être derrière un périphérique NAT.

Ceci n'est valide que si l'utilisateur est connecté aux serveurs Steam et ne prend pas en charge toutes les formes de NAT.

Éléments renvoyés : bool
true si la personne est derrière un NAT, sinon, false.

BIsPhoneIdentifying

bool BIsPhoneIdentifying();
Vérifie si le numéro de téléphone de la personne est utilisé pour l'identifier de manière unique.

Éléments renvoyés : bool
true si le numéro de téléphone de la personne vérifie de façon unique son identité, sinon, false.

BIsPhoneRequiringVerification

bool BIsPhoneRequiringVerification();
Vérifie si le numéro de téléphone de la personne attend une (re)vérification.

Éléments renvoyés : bool
true si le numéro de téléphone de la personne attend une vérification, sinon, false.

BIsPhoneVerified

bool BIsPhoneVerified();
Vérifie si la personne a vérifié son numéro de téléphone.

Consultez la page sur l'Authentificateur mobile Steam Guard sur le site du support Steam destiné à la clientèle pour plus d'informations.

Éléments renvoyés : bool
true si la personne a activé la vérification par numéro de téléphone, sinon, false.

BIsTwoFactorEnabled

bool BIsTwoFactorEnabled();
Vérifie si la personne a activé l'authentification Steam Guard en deux étapes sur son compte.

Consultez la page sur l'Authentificateur mobile Steam Guard sur le site du Support Steam destiné à la clientèle pour plus d'informations.

Éléments renvoyés : bool
true si la personne a activé la vérification en deux étapes, sinon, false.

BLoggedOn

bool BLoggedOn();
Vérifie si le client Steam de la personne est connecté aux serveurs Steam.

S'il ne l'est pas, aucun service en temps réel fourni par l'API Steamworks ne sera activé. Le client Steam essaiera automatiquement de recréer la connexion aussi souvent que possible. Lorsque la connexion sera restaurée, un rappel SteamServersConnected_t sera envoyé.

D'ordinaire, vous n'avez pas à vérifier ceci par vous-même. Tous les appels d'API reposant dessus effectueront la vérification en interne. Forcer la désactivation de fonctions lorsque la personne perd l'accès risque de lui causer des désagréments et vous pourriez l'empêcher d'accéder aux API qui n'ont pas besoin d'une connexion active à Steam.

Éléments renvoyés : bool
true si le client Steam actuel possède une connexion active aux serveurs Steam ; sinon, false s'il n'y a pas de connexion active à cause d'un problème réseau sur la machine locale, ou parce que le serveur Steam est hors service/occupé.

BSetDurationControlOnlineState

bool BSetDurationControlOnlineState( EDurationControlOnlineState eNewState );
Permet au jeu de spécifier s'il est en mode en ligne ou hors ligne pour le système de contrôle anti-addiction de Steam China.

Paramètres : EDurationControlOnlineState

Éléments renvoyés : bool
true si le mode en ligne a été défini avec succès, sinon, false.

Fonctions associées :
GetDurationControl

CancelAuthTicket

void CancelAuthTicket( HAuthTicket hAuthTicket );
NomTypeDescription
hAuthTicketHAuthTicketTicket d'authentification actif à annuler.

Annule un ticket d'authentification reçu via GetAuthSessionTicket. Cet appel doit être effectué lorsque vous ne jouez plus avec l'entité spécifiée.

Consulter également : Authentification des comptes et vérification de la possession d'une application

DecompressVoice

EVoiceResult DecompressVoice( const void *pCompressed, uint32 cbCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, uint32 nDesiredSampleRate );
NomTypeDescription
pCompressedconst void *Données compressées reçues de la part de GetVoice.
cbCompresseduint32Taille de la mémoire tampon transmise à pCompressed.
pDestBuffervoid *Tampon dans lequel les données audios brutes seront renvoyées. Ceci peut être passé sur vos sous-systèmes audios pour la lecture.
cbDestBufferSizeuint32Taille de la mémoire tampon transmise à pDestBuffer.
nBytesWrittenuint32 *Renvoie le nombre d'octets écrits dans pDestBuffer, ou la taille du tampon requise pour décompresser les données si cbDestBufferSize n'est pas suffisamment grand (et k_EVoiceResultBufferTooSmall est renvoyé).
nDesiredSampleRateuint32Taux d'échantillonnage qui sera renvoyé. Celui-ci peut être compris entre 11 025 et 48 000. Vous devriez utiliser soit le taux qui convient le mieux à votre système audio, ce qui prend généralement en compte le matériel audio des utilisateurs et utilisatrices, soit GetVoiceOptimalSampleRate pour obtenir le taux d'échantillonnage natif du décodeur Steam Voice.

Décode les données de voix compressées renvoyées par GetVoice.

Les données de sortie sont en audio PCM 16 bits mono canal brutes. Le décodeur est compatible avec les taux d'échantillonnage compris entre 11 025 et 48 000. Consultez GetVoiceOptimalSampleRate pour en savoir plus.

Il est recommandé de commencer avec un tampon de 20 Kio, puis de le réallouer si nécessaire.

Pour plus d'informations, veuillez consulter la section Steam Voice.

Éléments renvoyés : EVoiceResult
Le taux d'échantillonnage interne du décodeur Steam Voice.

EndAuthSession

void EndAuthSession( CSteamID steamID );
NomTypeDescription
steamIDCSteamIDEntité avec laquelle mettre fin à la session d'authentification active.

Met fin à une session d'authentification démarrée avec BeginAuthSession. Cet appel doit être effectué lorsque vous ne jouez plus avec l'entité spécifiée.

Consulter également : Authentification des comptes et vérification de la possession d'une application

GetAuthSessionTicket

HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, const SteamNetworkingIdentity *pIdentityRemote );
NomTypeDescription
pTicketvoid *Tampon où le nouveau ticket d'authentification sera copié si l'appel a abouti.
cbMaxTicketintTaille du tampon alloué à pTicket. Une taille de tampon de 1 024 est généralement suffisante. Il arrive parfois qu'une taille de tampon supérieure soit requise. C'est notamment le cas avec les applications qui disposent d'un nombre important de DLC.
pcbTicketuint32 *Renvoie la longueur du ticket actuel.
pIdentityRemote SteamNetworkingIdentity *Identité du système distant qui authentifiera le ticket. Pour le pair à pair, utilisez le SteamID du compte. Pour les serveurs de jeu, le SteamID du serveur de jeu peut être utilisé s'il est obtenu à partir d'un tiers de confiance. Dans le cas contraire, utilisez l'adresse IP. Pour un service, utilisez l'identificateur de chaine de ce service, s'il a été fourni.
REMARQUE : cette API ne peut pas être utilisée pour créer un ticket à utiliser avec l'API Web ISteamUserAuth/AuthenticateUserTicket. Veuillez plutôt utiliser l'appel GetAuthTicketForWebApi.

Récupère un ticket d'authentification à envoyer à l'entité qui souhaite vous authentifier.

Après cet appel, vous pouvez envoyer le ticket à l'entité qui pourra ensuite appeler BeginAuthSession/ISteamGameServer::BeginAuthSession pour vérifier son intégrité.

Éléments renvoyés : HAuthTicket
Déclenche un rappel GetAuthSessionTicketResponse_t.
Handle du ticket d'authentification. Lorsque vous avez terminé d'interagir avec l'entité, vous devez appeler CancelAuthTicket sur le handle.

Renvoie k_HAuthTicketInvalid en cas d'échec de l'appel.

Consulter également : Authentification des comptes et vérification de la possession d'une application

GetAuthTicketForWebApi

HAuthTicket GetAuthTicketForWebApi( const char *pchIdentity );
NomTypeDescription
*pchIdentity const char *Identité du service distant qui authentifiera le ticket. Le service devrait fournir un identificateur de chaine. Passez NULL si aucun n'a été fourni.

Récupère un ticket d'authentification à envoyer à l'entité qui souhaite vous authentifier en utilisant l'API Web ISteamUserAuth/AuthenticateUserTicket.
L'application à l'origine de l'appel doit attendre le rappel GetTicketForWebApiResponse_t généré par l'appel de l'API pour accéder au ticket.

Il est conseillé d'utiliser une chaine d'identification pour chaque service qui consomme des tickets.
REMARQUE : cette API ne peut pas être utilisée pour créer un ticket à utiliser avec BeginAuthSession/ISteamGameServer::BeginAuthSession. Veuillez plutôt utiliser l'API GetAuthSessionTicket.

Éléments renvoyés : HAuthTicket
Déclenche un rappel GetTicketForWebApiResponse_t.
Handle du ticket d'authentification. Lorsque vous avez terminé d'interagir avec l'entité, vous devez appeler CancelAuthTicket sur le handle.

Renvoie k_HAuthTicketInvalid en cas d'échec de l'appel.

Consulter également : Authentification des comptes et vérification de la possession d'une application

GetAvailableVoice

EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 );
NomTypeDescription
pcbCompresseduint32 *Renvoie la taille des données de voix disponibles en octets.
pcbUncompressed_Deprecateduint32 *Obsolète.
nUncompressedVoiceDesiredSampleRate_Deprecateduint32Obsolète.

Vérifie si des données de capture audio sont disponibles depuis GetVoice et obtient la taille des données.

La plupart des applications utilisent uniquement des données compressées et devraient ignorer les autres paramètres, qui sont là principalement pour permettre une rétrocompatibilité. Consultez GetVoice pour plus d'explications sur les données non compressées.

Pour plus d'informations, veuillez consulter la section Steam Voice.

Éléments renvoyés : EVoiceResult

GetDurationControl

SteamAPICall_t GetDurationControl();

Récupère les données du système de contrôle anti-addiction pour la personne et le jeu en cours.


Éléments renvoyés : SteamAPICall_t, à utiliser avec un résultat d'appel DurationControl_t.
Renvoie k_uAPICallInvalid si aucune connexion n'a pu être effectuée avec les serveurs Steam.

Fonctions associées :
BSetDurationControlOnlineState

GetEncryptedAppTicket

bool GetEncryptedAppTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
NomTypeDescription
pTicketvoid *Ticket d'application crypté copié dans ce tampon.
cbMaxTicketintTaille totale du tampon pTicket en octets.
pcbTicketuint32 *Renvoie le nombre d'octets copiés dans pTicket.

Récupère le ticket crypté.

Ceci devrait être appelé après avoir demandé un ticket d'application crypté avec RequestEncryptedAppTicket et après avoir reçu le résultat de l'appel EncryptedAppTicketResponse_t.

Vous devriez ensuite passer ce ticket crypté à vos serveurs sécurisés pour les décrypter en utilisant votre clé secrète à l'aide de SteamEncryptedAppTicket::BDecryptTicket.

REMARQUE : Si vous appelez ceci sans appeler RequestEncryptedAppTicket, l'appel pourrait réussir, mais vous risquez de vous retrouver avec un ticket dépassé.

Éléments renvoyés : bool
true si l'appel a bien renvoyé un ticket d'application dans pTicket.
false dans les conditions suivantes.
  • pcbTicket est NULL
  • pTicket est NULL
  • pTicket est trop petit pour contenir ce ticket.
  • Il n'y avait pas de ticket disponible. (Avez-vous attendu EncryptedAppTicketResponse_t ?)

GetGameBadgeLevel

int GetGameBadgeLevel( int nSeries, bool bFoil );
NomTypeDescription
nSeriesintSi vous ne possédez qu'un ensemble de cartes, la série sera 1.
bFoilboolVérifie si le badge premium a été reçu.

Obtient le niveau des badges Steam des utilisateurs et utilisatrices pour votre jeu.

Une personne peut avoir deux différents badges pour une série ; le badge normal (niveau 5 maximum) et le badge premium (niveau 1 maximum).

Éléments renvoyés : int
Niveau du badge, 0 si le badge n'a pas été obtenu.

GetHSteamUser

HSteamUser GetHSteamUser();
Obtient le handle du compte Steam que représente cette interface.

Utilisé uniquement en interne par l'API et par quelques interfaces choisies qui prennent en charge les comptes multiples.

Éléments renvoyés : HSteamUser

GetPlayerSteamLevel

int GetPlayerSteamLevel();
Obtient le niveau Steam du compte, comme indiqué sur son profil de la communauté Steam.

Éléments renvoyés : int
Niveau du compte actuel.

GetSteamID

CSteamID GetSteamID();
Obtient le SteamID du compte actuellement connecté au client Steam. On l'appelle plus couramment le « compte actuel » ou l'« utilisateur/utilisatrice local(e) ».

Un SteamID est l'identifiant unique d'un compte Steam, d'un groupe Steam, d'une salle d'attente ou d'une salle de chat. Il sert à différencier les utilisateurs et utilisatrices dans toutes les parties de l'API Steamworks.

Éléments renvoyés : CSteamID


Exemple :
CSteamID steamID = SteamUser()->GetSteamID();

GetUserDataFolder

bool GetUserDataFolder( char *pchBuffer, int cubBuffer );
NomTypeDescription
pchBufferchar *
cubBufferint

Obsolète. Utilisez plutôt l'API du Steam Cloud depuis ISteamRemoteStorage.

Éléments renvoyés : bool

GetVoice

EVoiceResult GetVoice( bool bWantCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, bool bWantUncompressed_Deprecated = false, void *pUncompressedDestBuffer_Deprecated = 0, uint32 cbUncompressedDestBufferSize_Deprecated = 0, uint32 *nUncompressBytesWritten_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 );
NomTypeDescription
bWantCompressedboolDevrait toujours être true.
pDestBuffervoid *Tampon dans lequel seront copiées les données audio.
cbDestBufferSizeuint32Taille du tampon alloué à pDestBuffer.
nBytesWrittenuint32 *Renvoie le nombre d'octets écrits dans pDestBuffer. Cela doit toujours être la taille renvoyée par ISteamUser::GetAvailableVoice.
bWantUncompressed_DeprecatedboolObsolète.
pUncompressedDestBuffer_Deprecatedvoid *Obsolète.
cbUncompressedDestBufferSize_Deprecateduint32Obsolète.
nUncompressBytesWritten_Deprecateduint32 *Obsolète.
nUncompressedVoiceDesiredSampleRate_Deprecateduint32Obsolète.

Lit les données audio capturées depuis le tampon du microphone.

Les données compressées peuvent être transmises par votre application et ensuite décodées en données audio brutes à l'aide de DecompressVoice de l'autre côté. Les données compressées fournies sont dans un format arbitraire et ne sont pas destinées à être lues directement.

Ceci doit être appelé une fois par image et au pire, pas plus de quatre fois par seconde pour conserver la latence d'entrée du microphone aussi basse que possible. Appeler ceci moins souvent peut entrainer des interruptions dans la diffusion renvoyée.

Il est recommandé de passer un tampon de destination de 8 Ko ou plus pour l'audio compressé. Les tampons statiques sont recommandés pour des raisons de performances. Toutefois, si vous voulez allouer précisément la quantité d'espace adéquate pour un tampon avant chaque appel, vous pouvez utiliser GetAvailableVoice pour connaitre la quantité de données disponibles à la lecture.

REMARQUE : l'audio non compressé est une fonction obsolète qui, pour la plupart des applications, ne doit pas être utilisée. Il s'agit de données ondulatoires en PCM 16 bits monocanal qui ont pu être traitées par des filtres de prétraitement et/ou ont eu leurs silences supprimés, donc, l'audio non compressé pourrait avoir une durée plus courte qu'attendue. Pendant de longues périodes de silence, il se peut qu'il n'y ait aucune donnée du tout. De même, aller chercher de l'audio non compressé va pousser GetVoice à ignorer tout audio compressé restant, vous devez donc aller chercher les deux types en même temps. Enfin, GetAvailableVoice n'est pas d'une grande précision lorsque la taille non compressée est demandée. Donc, si vous avez vraiment besoin d'audio non compressé, vous devez fréquemment appeler GetVoice avec deux très grands (plus de 20 Kio) tampons de sortie plutôt que d'essayer d'allouer des tampons parfaitement ajustés. Mais la plupart des applications devraient ignorer tous ces détails et simplement laisser les paramètres non compressés sur NULL/0.

Pour plus d'informations, veuillez consulter la section Steam Voice.

Éléments renvoyés : EVoiceResult

GetVoiceOptimalSampleRate

uint32 GetVoiceOptimalSampleRate();
Obtient le taux d'échantillonnage natif du décodeur Steam Voice.

L'utilisation de ce taux d'échantillonnage pour DecompressVoice consomme le moins de ressources CPU. Toutefois, la qualité audio finale dépendra de la faculté du périphérique audio (et/ou du SDK de sortie audio de votre application) à gérer les taux d'échantillonnage plus faibles. Vous vous apercevrez peut-être que vous obtenez la meilleure qualité de sortie audio lorsque vous ignorez cette fonction et que vous utilisez le taux d'échantillonnage natif de votre périphérique de sortie audio, qui est habituellement 48 000 ou 44 100.

Pour plus d'informations, veuillez consulter la section Steam Voice.

Éléments renvoyés : uint32

InitiateGameConnection

int InitiateGameConnection( void *pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure );
NomTypeDescription
pAuthBlobvoid *Pointeur vers une mémoire vide qui sera remplie avec le jeton d'authentification.
cbMaxAuthBlobintNombre d'octets de mémoire allouée dans pBlob. Il doit être d'au moins 2 048 octets.
steamIDGameServerCSteamIDSteamID du serveur de jeu, reçu du serveur de jeu par le client.
unIPServeruint32Adresse IP du serveur de jeu dans l'ordre de l'hôte, c.-à-d. 127.0.0.1 == 0x7f000001.
usPortServeruint16Port de connexion du serveur de jeu, dans l'ordre de l'hôte.
bSecureboolEst-ce que le client croit ou non que le serveur de jeu se signale comme étant sécurisé (c'est-à-dire avec VAC en cours d'exécution) ?

Ceci lance la machine à états pour l'authentification du client de jeu avec le serveur de jeu.

Il s'agit de la partie client d'une prise de contact tridirectionnelle entre le client, le serveur de jeu et les serveurs Steam.

REMARQUE : lorsque vous en aurez terminé avec la connexion, vous devez appeler TerminateGameConnection.

REMARQUE : fait partie de l'ancien API d'authentification de compte et ne doit pas être associé au nouvel API.

Éléments renvoyés : int
Nombre d'octets écrits dans pBlob.

Renvoie 0 pour indiquer un échec, ce qui signifie que le tampon pAuthBlob passé était trop petit et que l'appel a échoué.

Le contenu de pAuthBlob devrait ensuite être envoyé au serveur de jeu pour qu'il l'utilise et termine le processus d'authentification.

RequestEncryptedAppTicket

SteamAPICall_t RequestEncryptedAppTicket( void *pDataToInclude, int cbDataToInclude );
NomTypeDescription
pDataToIncludevoid *Données qui seront cryptées sur le ticket.
cbDataToIncludeintTaille totale en octets de pDataToInclude.

Demande un ticket d'application crypté avec la clé de ticket d'application cryptée secrète.

La clé de cryptage peut être obtenue depuis la page Clé de ticket d'application cryptée de l'espace d'administration de votre application.

Il ne peut y avoir qu'un seul EncryptedAppTicketResponse_t en attente et cet appel est sujet à une limite de durée de 60 secondes.

Après avoir reçu la réponse, vous devez appeler GetEncryptedAppTicket pour obtenir les données du ticket, puis vous devez l'envoyer vers un serveur sécurisé pour qu'il soit décrypté avec les fonctions SteamEncryptedAppTicket.

Éléments renvoyés : SteamAPICall_t, à utiliser avec un résultat d'appel EncryptedAppTicketResponse_t.


Exemple :
class CEncryptedAppTicketExample { public: void RetrieveEncryptedAppTicket(); private: void OnEncryptedAppTicketResponse( EncryptedAppTicketResponse_t *pEncryptedAppTicketResponse, bool bIOFailure ); CCallResult< CEncryptedAppTicketExample, EncryptedAppTicketResponse_t > m_EncryptedAppTicketResponseCallResult; }; void CEncryptedAppTicketExample::RetrieveEncryptedAppTicket() { SteamAPICall_t hSteamAPICall = SteamUser()->RequestEncryptedAppTicket( &k_unSecretData, sizeof( k_unSecretData ) ); m_EncryptedAppTicketResponseCallResult.Set( hSteamAPICall, this, &CEncryptedAppTicketExample::OnEncryptedAppTicketResponse ); } void CEncryptedAppTicketExample::OnEncryptedAppTicketResponse( EncryptedAppTicketResponse_t *pEncryptedAppTicketResponse, bool bIOFailure ) { if ( bIOFailure ) { printf( "There has been an IO Failure when requesting the Encrypted App Ticket.\n" ); return; } switch ( pEncryptedAppTicketResponse->m_eResult ) { case k_EResultOK: { uint8 rgubTicket[1024]; uint32 cubTicket; if ( SteamUser()->GetEncryptedAppTicket( rgubTicket, sizeof( rgubTicket ), &cubTicket ) ) { // À ce stade, vous devriez transmettre le ticket crypté à un service de confiance détenteur de la clé de décryptage // Ce code sert seulement à montrer le fonctionnement de la bibliothèque décryptant le ticket DecryptTicket( rgubTicket, cubTicket ); } else printf( "GetEncryptedAppTicket failed.\n" ); } break; case k_EResultNoConnection: printf( "Calling RequestEncryptedAppTicket while not connected to steam results in this error.\n" ); break; case k_EResultDuplicateRequest: printf( "Calling RequestEncryptedAppTicket while there is already a pending request results in this error.\n" ); break; case k_EResultLimitExceeded: printf( "Calling RequestEncryptedAppTicket more than once per minute returns this error.\n" ); break; } }

RequestStoreAuthURL

SteamAPICall_t RequestStoreAuthURL( const char *pchRedirectURL );
NomTypeDescription
pchRedirectURLconst char *

Demande une URL qui authentifie un navigateur intégré au jeu pour les paiements dans le magasin, puis redirige vers l'URL spécifiée.

Tant que le navigateur intégré accepte et gère les cookies de session, les pages de paiement de microtransactions de Steam reconnaitront automatiquement le compte au lieu de lui présenter une page de connexion.

REMARQUE : L'URL a une durée de vie très courte pour empêcher les attaques d'exploitation d'historique. Vous avez donc intérêt à appeler cette API uniquement lorsque vous êtes sur le point de lancer le navigateur, ou sinon, d'accéder immédiatement à l'URL à l'aide d'une fenêtre de navigateur masquée.

REMARQUE : le cookie d'autorisation qui en résulte a une durée de vie d'une journée avant expiration, il est donc recommandé de demander et de visiter une nouvelle URL d'authentification toutes les 12 heures.

Éléments renvoyés : SteamAPICall_t, à utiliser avec un résultat d'appel StoreAuthURLResponse_t.
Renvoie k_uAPICallInvalid si aucune connexion n'a pu être effectuée avec les serveurs Steam.

StartVoiceRecording

void StartVoiceRecording();
Lance l'enregistrement vocal.

Une fois lancé, utilisez GetAvailableVoice et GetVoice pour obtenir les données, puis, appelez StopVoiceRecording lorsque le compte a relâché le bouton push-to-talk ou lorsque la session de jeu est terminée.

Pour plus d'informations, veuillez consulter la section Steam Voice.

StopVoiceRecording

void StopVoiceRecording();
Arrête l'enregistrement vocal.

Comme les gens ont tendance à relâcher le bouton push-to-talk un peu trop tôt, le système va continuer à enregistrer quelques instants après l'appel de cette fonction. Ainsi, GetVoice devrait continuer à être appelé jusqu'à ce qu'il renvoie k_EVoiceResultNotRecording. Alors seulement, l'enregistrement vocal sera arrêté.

TerminateGameConnection

void TerminateGameConnection( uint32 unIPServer, uint16 usPortServer );
NomTypeDescription
unIPServeruint32
usPortServeruint16

Notifie le serveur de jeu de la déconnexion.

Ceci doit survenir lorsque le client de jeu quitte le serveur de jeu spécifié. Doit correspondre à l'appel InitiateGameConnection.

REMARQUE : fait partie de l'ancien API d'authentification de compte et ne doit pas être associé au nouvel API.

TrackAppUsageEvent

void TrackAppUsageEvent( CGameID gameID, int eAppUsageEvent, const char *pchExtraInfo = "" );
NomTypeDescription
gameIDCGameID
eAppUsageEventint
pchExtraInfoconst char *

Obsolète : utilisé uniquement par quelques jeux pour suivre les évènements d'utilisation avant l'ajout de Statistiques et succès.

UserHasLicenseForApp

EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
NomTypeDescription
steamIDCSteamIDSteamID du compte qui a envoyé le ticket d'authentification.
appIDAppId_tAppID du DLC afin de vérifier si le compte le possède.

Vérifie si le compte possède un élément spécifique de Contenu téléchargeable (DLC).

Cette fonction peut être appelée uniquement après l'envoi du ticket d'authentification du compte à ISteamGameServer::BeginAuthSession.

Éléments renvoyés : EUserHasLicenseForAppResult


Consulter également : Authentification des comptes et vérification de la possession d'une application

Rappels

Voici les rappels qui peuvent être activés en appelant SteamAPI_RunCallbacks. La plupart seront activés directement en réponse aux fonctions membres de ISteamUser.

ClientGameServerDeny_t

Envoyé par le serveur Steam au client afin de lui demander de se déconnecter du serveur de jeu spécifié, vers lequel il est peut-être en cours de connexion ou bien déjà connecté.
Le client de jeu doit immédiatement se déconnecter à la réception de ce message.
Ceci survient généralement quand le compte n'a pas les droits pour jouer sur le serveur de jeu.

NomTypeDescription
m_uAppIDuint32AppID destinataire de cet appel. Vérifie qu'il est identique à l'AppID actuel avec ISteamUtils::GetAppID.
m_unGameServerIPuint32Adresse IP du serveur de jeu qui demande la déconnexion, dans l'ordre de l'hôte, c'est-à-dire, 127.0.0.1 == 0x7f000001.
m_usGameServerPortuint16Port du serveur de jeu qui demande la déconnexion, dans l'ordre de l'hôte.
m_bSecureuint16Le serveur de jeu VAC est-il sécurisé (true) ou non (false) ?
m_uReasonuint32

DurationControl_t


Envoyé pour les jeux qui disposent d'un système anti-addiction/contrôle du temps de jeu, pour les comptes qui ont ce système activé. Fait savoir au jeu si la fonctionnalité est activée pour la personne, si elle doit quitter le jeu bientôt, ainsi que de son temps de jeu quotidien restant.

Ce rappel est activé de manière asynchrone suite au déclenchement des minuteurs. Il est également activé après les appels à GetDurationControl().

NomTypeDescription
m_eResultEResultRésultat de l'appel (toujours k_EResultOK pour les notifications asynchrones basées sur un minuteur).
m_appidAppId_tAppID qui génère le temps de jeu.
m_bApplicableboolLe contrôle anti-addiction s'applique-t-il à la fois au compte et au jeu ?
m_csecsLast5hint32Temps de jeu en secondes (5 dernières heures + session en cours).
m_progressEDurationControlProgressIndique si oui ou non le jeu doit se fermer.
m_notificationEDurationControlNotificationNotification à afficher, s'il y en a une (toujours k_EDurationControlNotification_None pour les appels d'API).

Fonctions associées : GetDurationControl

EncryptedAppTicketResponse_t

Appelé lorsqu'un ticket d'application crypté a été reçu.

NomTypeDescription
m_eResultEResultL'appel a-t-il été effectué avec succès ?
Résultats possibles :

Fonctions associées : RequestEncryptedAppTicket

GameWebCallback_t

Envoyé à votre jeu en réponse à la commande steam://gamewebcallback/ provenant d'une personne qui a cliqué sur un lien dans le navigateur de l'Overlay Steam.
Vous pouvez utiliser ce rappel pour prendre en charge les inscriptions sur un site Web externe dans les scénarios où vous souhaitez revenir dans le navigateur à la conclusion de ladite séquence d'inscription. Facultativement, cela vous permet de recueillir des informations sur l'action.

NomTypeDescription
m_szURLchar[256]URL complète sur laquelle a cliqué la personne.

GetAuthSessionTicketResponse_t

Résultat de la création d'un ticket de session authentifiée.

NomTypeDescription
m_hAuthTicketHAuthTicketHandle du ticket qui a été créé.
m_eResultEResultRésultat de l'opération.

Fonctions associées : GetAuthSessionTicket

GetTicketForWebApiResponse_t

Résultat obtenu lorsqu'un ticket d'API Web est créé depuis GetAuthTicketForWebApi.

NomTypeDescription
m_hAuthTicketHAuthTicketHandle du ticket qui a été créé.
m_eResultEResultRésultat de l'opération.
m_cubTicketint Longueur du ticket qui a été créé.
m_rgubTicketuint8[2560]Ticket qui a été créé.

Fonctions associées : GetAuthTicketForWebApi

IPCFailure_t

Appelé lorsque le système de rappel pour ce client est dans un état d'erreur (et a purgé les rappels en attente).
Lorsqu'il reçoit ce message, le client doit se déconnecter de Steam, réinitialiser tout état de Steam enregistré et se reconnecter.
Ceci survient généralement dans le cas rare où le client Steam rencontre une erreur fatale.

NomTypeDescription
m_eFailureTypeuint8Il s'agit d'un EFailureType.

LicensesUpdated_t

Appelé chaque fois que les licences de la personne (paquets possédés) changent.

Ce rappel n'a pas de champ.

MicroTxnAuthorizationResponse_t

Appelé lorsqu'un compte a répondu à une requête d'autorisation de microtransaction.

NomTypeDescription
m_unAppIDuint32AppID de cette microtransaction.
m_ulOrderIDuint64ID de commande fournie pour la microtransaction.
m_bAuthorizeduint8L'utilisatrice ou l'utilisateur a-t-il autorisé la transaction (1) ou non (0) ?

SteamServerConnectFailure_t

Appelé lorsqu'une tentative de connexion a échoué.
Ceci va survenir de façon périodique si le client Steam n'est pas connecté et qu'il a échoué en réessayant d'établir une connexion.

NomTypeDescription
m_eResultEResultRaison pour laquelle la connexion a échoué.
m_bStillRetryingboolEst-ce que le client Steam essaie encore de se connecter au serveur ?

SteamServersConnected_t

Appelé lorsqu'une connexion à l'interface Steam a été établie.
Cela signifie que le client Steam possède désormais une connexion vers les serveurs Steam. En général, ceci survient avant le lancement du jeu et ne devrait être visible que si le compte a perdu sa connexion en raison d'un problème réseau ou d'une mise à jour du serveur Steam.

Ce rappel n'a pas de champ.

SteamServersDisconnected_t

Appelé si le client a perdu sa connexion avec les serveurs Steam.
Les services en temps réel seront désactivés jusqu'à ce qu'un SteamServersConnected_t correspondant ait été envoyé.

NomTypeDescription
m_eResultEResultRaison de la déconnexion de Steam.

StoreAuthURLResponse_t

Réponse lorsque nous avons reçu l'URL d'authentification après un appel de RequestStoreAuthURL.

NomTypeDescription
m_szURLchar[512]URL d'authentification.

Fonctions associées : RequestStoreAuthURL

ValidateAuthTicketResponse_t

Appelé lorsqu'un ticket d'authentification a été validé.

NomTypeDescription
m_SteamIDCSteamIDSteamID de l'entité qui a fourni le ticket d'authentification.
m_eAuthSessionResponseEAuthSessionResponseRésultat de la validation.
m_OwnerSteamIDCSteamIDSteamID de la personne qui possède le jeu. Il sera différent de m_SteamID si l'accès au jeu s'est fait via le partage familial Steam.

Fonctions associées : BeginAuthSession

Structures

Voici les structures que les fonctions de ISteamUser peuvent renvoyer et/ou avec lesquelles elles peuvent interagir.

CallbackMsg_t

La structure qui contient les données de rappel du client. Ceci est utilisé uniquement en interne au sein de SteamAPI_RunCallbacks.

NomTypeDescription
m_hSteamUserHSteamUserCompte auquel ce rappel est envoyé.
m_iCallbackintID unique du rappel.
m_pubParamuint8 *Pointeur vers les données de rappel.
m_cubParamintTaille de [param]m_pubParam[/param].

Énumérations

Voici les énumérations destinées à être utilisées avec ISteamUser.

EFailureType

Précise quel type d'échec est survenu dans IPCFailure_t.

NomValeurDescription
k_EFailureFlushedCallbackQueue0
k_EFailurePipeFail1

EDurationControlProgress

Décrit les restrictions de durée de jeu applicables aux titres pour lesquels le contrôle anti-addiction est activé pour les utilisatrices et utilisateurs mineurs sur Steam China.

NomValeurDescription
k_EDurationControlProgress_Full0La personne peut jouer normalement.
k_EDurationControlProgress_Half1(Cette valeur est obsolète.)
k_EDurationControlProgress_None2Temps de jeu écoulé. Steam va bientôt fermer le jeu.

Fonctions associées :
GetDurationControl
BSetDurationControlOnlineState

EDurationControlNotification

Indique quel minuteur de notification a expiré. Utilisé pour la fonctionnalité de contrôle du temps de jeu de Steam China. Certaines notifications sont obsolètes et ne sont plus envoyées.

NomValeurDescription
k_EDurationControlNotification_None0Ce rappel informe sur la progression. Il n'affiche pas de notification.
k_EDurationControlNotification_1Hour1La personne a joué pendant une heure. Le jeu peut afficher une notification à ce stade.
k_EDurationControlNotification_3Hours2(Obsolète.)
k_EDurationControlNotification_HalfProgress3(Obsolète.)
k_EDurationControlNotification_ExitSoon_3h4La personne a atteint la limite de temps de jeu autorisé et doit quitter le jeu.
k_EDurationControlNotification_ExitSoon_5h4La personne a atteint la limite de temps de jeu autorisé et doit quitter le jeu.
k_EDurationControlNotification_ExitSoon_Night4La personne a joué jusqu'à l'heure autorisée (22 h) et doit quitter le jeu.

Fonctions associées :
GetDurationControl
BSetDurationControlOnlineState

EDurationControlOnlineState

Permet de décrire l'état de jeu en ligne/hors ligne d'un jeu. Pour le moment, n'est utilisé que pour le jeu afin d'indiquer à Steam de ne pas le fermer automatiquement lorsque le temps de jeu est écoulé. Si le jeu appelle BSetDurationControlOnlineState(k_EDurationControlOnlineState_OnlineHighPri), alors Steam ne forcera pas la fermeture du jeu, laissant ainsi au jeu le soin de prendre cette décision. Steam continuera d'envoyer des notifications DurationControl_t au jeu. Si le jeu vient à appeler BSetDurationControlOnlineState pour supprimer l'état OnlineHighPri, alors Steam forcera la fermeture du jeu peu de temps après.

NomValeurDescription
k_EDurationControlOnlineState_Offline1Partie hors ligne.
k_EDurationControlOnlineState_Online2Partie en ligne.
k_EDurationControlOnlineState_OnlineHighPri3Partie en ligne : le jeu demande à Steam de ne pas forcer la fermeture du jeu.

Fonctions associées :
GetDurationControl
BSetDurationControlOnlineState

Constantes

Voici les constantes destinées à être utilisées avec ISteamUser.

NomTypeValeurDescription
STEAMUSER_INTERFACE_VERSIONconst char *"SteamUser019"