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 );
Nom | Type | Description |
steamIDGameServer | CSteamID | Cela doit être k_steamIDNonSteamGS si vous définissez l'adresse IP et le port, sinon, cela doit être k_steamIDNil si vous les effacez. |
unIPServer | uint32 | Adresse IP du serveur de jeu dans l'ordre de l'hôte, c'est-à-dire, 127.0.0.1 == 0x7f000001. |
usPortServer | uint16 | Port 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 );
Nom | Type | Description |
pAuthTicket | const void * | Ticket d'authentification à valider. |
cbAuthTicket | int | Taille en octets du ticket d'authentification. Doit être la taille de pcbTicket fournie par l'appel qui a créé ce ticket. |
steamID | CSteamID | SteamID 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 : EBeginAuthSessionResultDéclenche un rappel
ValidateAuthTicketResponse_t.
Consulter également : Authentification des comptes et vérification de la possession d'une applicationBIsBehindNAT
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 :GetDurationControlCancelAuthTicket
void CancelAuthTicket( HAuthTicket hAuthTicket );
Nom | Type | Description |
hAuthTicket | HAuthTicket | Ticket 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 applicationDecompressVoice
EVoiceResult DecompressVoice( const void *pCompressed, uint32 cbCompressed, void *pDestBuffer, uint32 cbDestBufferSize, uint32 *nBytesWritten, uint32 nDesiredSampleRate );
Nom | Type | Description |
pCompressed | const void * | Données compressées reçues de la part de GetVoice. |
cbCompressed | uint32 | Taille de la mémoire tampon transmise à pCompressed . |
pDestBuffer | void * | Tampon dans lequel les données audios brutes seront renvoyées. Ceci peut être passé sur vos sous-systèmes audios pour la lecture. |
cbDestBufferSize | uint32 | Taille de la mémoire tampon transmise à pDestBuffer . |
nBytesWritten | uint32 * | 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é). |
nDesiredSampleRate | uint32 | Taux 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 : EVoiceResultLe taux d'échantillonnage interne du décodeur Steam Voice.
EndAuthSession
void EndAuthSession( CSteamID steamID );
Nom | Type | Description |
steamID | CSteamID | Entité 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 applicationGetAuthSessionTicket
HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, const SteamNetworkingIdentity *pIdentityRemote );
Nom | Type | Description |
pTicket | void * | Tampon où le nouveau ticket d'authentification sera copié si l'appel a abouti. |
cbMaxTicket | int | Taille 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. |
pcbTicket | uint32 * | 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. |
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 : HAuthTicketDé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 applicationGetAuthTicketForWebApi
HAuthTicket GetAuthTicketForWebApi( const char *pchIdentity );
Nom | Type | Description |
*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.
Éléments renvoyés : HAuthTicketDé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 applicationGetAvailableVoice
EVoiceResult GetAvailableVoice( uint32 *pcbCompressed, uint32 *pcbUncompressed_Deprecated = 0, uint32 nUncompressedVoiceDesiredSampleRate_Deprecated = 0 );
Nom | Type | Description |
pcbCompressed | uint32 * | Renvoie la taille des données de voix disponibles en octets. |
pcbUncompressed_Deprecated | uint32 * | Obsolète. |
nUncompressedVoiceDesiredSampleRate_Deprecated | uint32 | Obsolè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 : EVoiceResultGetDurationControl
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 :BSetDurationControlOnlineStateGetEncryptedAppTicket
bool GetEncryptedAppTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
Nom | Type | Description |
pTicket | void * | Ticket d'application crypté copié dans ce tampon. |
cbMaxTicket | int | Taille totale du tampon pTicket en octets. |
pcbTicket | uint32 * | 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 );
Nom | Type | Description |
nSeries | int | Si vous ne possédez qu'un ensemble de cartes, la série sera 1. |
bFoil | bool | Vé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 : HSteamUserGetPlayerSteamLevel
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 : CSteamIDExemple :CSteamID steamID = SteamUser()->GetSteamID();
GetUserDataFolder
bool GetUserDataFolder( char *pchBuffer, int cubBuffer );
Nom | Type | Description |
pchBuffer | char * | |
cubBuffer | int | |
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 );
Nom | Type | Description |
bWantCompressed | bool | Devrait toujours être true. |
pDestBuffer | void * | Tampon dans lequel seront copiées les données audio. |
cbDestBufferSize | uint32 | Taille du tampon alloué à pDestBuffer . |
nBytesWritten | uint32 * | Renvoie le nombre d'octets écrits dans pDestBuffer . Cela doit toujours être la taille renvoyée par ISteamUser::GetAvailableVoice . |
bWantUncompressed_Deprecated | bool | Obsolète. |
pUncompressedDestBuffer_Deprecated | void * | Obsolète. |
cbUncompressedDestBufferSize_Deprecated | uint32 | Obsolète. |
nUncompressBytesWritten_Deprecated | uint32 * | Obsolète. |
nUncompressedVoiceDesiredSampleRate_Deprecated | uint32 | Obsolè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 : EVoiceResultGetVoiceOptimalSampleRate
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 : uint32InitiateGameConnection
int InitiateGameConnection( void *pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint32 unIPServer, uint16 usPortServer, bool bSecure );
Nom | Type | Description |
pAuthBlob | void * | Pointeur vers une mémoire vide qui sera remplie avec le jeton d'authentification. |
cbMaxAuthBlob | int | Nombre d'octets de mémoire allouée dans pBlob. Il doit être d'au moins 2 048 octets. |
steamIDGameServer | CSteamID | SteamID du serveur de jeu, reçu du serveur de jeu par le client. |
unIPServer | uint32 | Adresse IP du serveur de jeu dans l'ordre de l'hôte, c.-à-d. 127.0.0.1 == 0x7f000001. |
usPortServer | uint16 | Port de connexion du serveur de jeu, dans l'ordre de l'hôte. |
bSecure | bool | Est-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 );
Nom | Type | Description |
pDataToInclude | void * | Données qui seront cryptées sur le ticket. |
cbDataToInclude | int | Taille 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 );
Nom | Type | Description |
pchRedirectURL | const 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 );
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 = "" );
Nom | Type | Description |
gameID | CGameID | |
eAppUsageEvent | int | |
pchExtraInfo | const 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 );
Nom | Type | Description |
steamID | CSteamID | SteamID du compte qui a envoyé le ticket d'authentification. |
appID | AppId_t | AppID 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 : EUserHasLicenseForAppResultConsulter également : Authentification des comptes et vérification de la possession d'une applicationRappels
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.
Nom | Type | Description |
m_uAppID | uint32 | AppID destinataire de cet appel. Vérifie qu'il est identique à l'AppID actuel avec ISteamUtils::GetAppID. |
m_unGameServerIP | uint32 | Adresse 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_usGameServerPort | uint16 | Port du serveur de jeu qui demande la déconnexion, dans l'ordre de l'hôte. |
m_bSecure | uint16 | Le serveur de jeu VAC est-il sécurisé (true) ou non (false) ? |
m_uReason | uint32 | |
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().
Nom | Type | Description |
m_eResult | EResult | Résultat de l'appel (toujours k_EResultOK pour les notifications asynchrones basées sur un minuteur). |
m_appid | AppId_t | AppID qui génère le temps de jeu. |
m_bApplicable | bool | Le contrôle anti-addiction s'applique-t-il à la fois au compte et au jeu ? |
m_csecsLast5h | int32 | Temps de jeu en secondes (5 dernières heures + session en cours). |
m_progress | EDurationControlProgress | Indique si oui ou non le jeu doit se fermer. |
m_notification | EDurationControlNotification | Notification à afficher, s'il y en a une (toujours k_EDurationControlNotification_None pour les appels d'API). |
Fonctions associées : GetDurationControlEncryptedAppTicketResponse_t
Appelé lorsqu'un ticket d'application crypté a été reçu.
Nom | Type | Description |
m_eResult | EResult | L'appel a-t-il été effectué avec succès ? Résultats possibles :
|
Fonctions associées : RequestEncryptedAppTicketGameWebCallback_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.
Nom | Type | Description |
m_szURL | char[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.
Nom | Type | Description |
m_hAuthTicket | HAuthTicket | Handle du ticket qui a été créé. |
m_eResult | EResult | Résultat de l'opération. |
Fonctions associées : GetAuthSessionTicketGetTicketForWebApiResponse_t
Résultat obtenu lorsqu'un ticket d'API Web est créé depuis GetAuthTicketForWebApi.
Nom | Type | Description |
m_hAuthTicket | HAuthTicket | Handle du ticket qui a été créé. |
m_eResult | EResult | Résultat de l'opération. |
m_cubTicket | int | Longueur du ticket qui a été créé. |
m_rgubTicket | uint8[2560] | Ticket qui a été créé. |
Fonctions associées : GetAuthTicketForWebApiIPCFailure_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.
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.
Nom | Type | Description |
m_unAppID | uint32 | AppID de cette microtransaction. |
m_ulOrderID | uint64 | ID de commande fournie pour la microtransaction. |
m_bAuthorized | uint8 | L'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.
Nom | Type | Description |
m_eResult | EResult | Raison pour laquelle la connexion a échoué. |
m_bStillRetrying | bool | Est-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é.
Nom | Type | Description |
m_eResult | EResult | Raison 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.
Nom | Type | Description |
m_szURL | char[512] | URL d'authentification. |
Fonctions associées : RequestStoreAuthURLValidateAuthTicketResponse_t
Appelé lorsqu'un ticket d'authentification a été validé.
Nom | Type | Description |
m_SteamID | CSteamID | SteamID de l'entité qui a fourni le ticket d'authentification. |
m_eAuthSessionResponse | EAuthSessionResponse | Résultat de la validation. |
m_OwnerSteamID | CSteamID | SteamID 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 : BeginAuthSessionStructures
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.
Nom | Type | Description |
m_hSteamUser | HSteamUser | Compte auquel ce rappel est envoyé. |
m_iCallback | int | ID unique du rappel. |
m_pubParam | uint8 * | Pointeur vers les données de rappel. |
m_cubParam | int | Taille 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.
Nom | Valeur | Description |
k_EFailureFlushedCallbackQueue | 0 | |
k_EFailurePipeFail | 1 | |
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.
Nom | Valeur | Description |
k_EDurationControlProgress_Full | 0 | La personne peut jouer normalement. |
k_EDurationControlProgress_Half | 1 | (Cette valeur est obsolète.) |
k_EDurationControlProgress_None | 2 | Temps de jeu écoulé. Steam va bientôt fermer le jeu. |
Fonctions associées :GetDurationControlBSetDurationControlOnlineStateEDurationControlNotification
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.
Nom | Valeur | Description |
k_EDurationControlNotification_None | 0 | Ce rappel informe sur la progression. Il n'affiche pas de notification. |
k_EDurationControlNotification_1Hour | 1 | La personne a joué pendant une heure. Le jeu peut afficher une notification à ce stade. |
k_EDurationControlNotification_3Hours | 2 | (Obsolète.) |
k_EDurationControlNotification_HalfProgress | 3 | (Obsolète.) |
k_EDurationControlNotification_ExitSoon_3h | 4 | La personne a atteint la limite de temps de jeu autorisé et doit quitter le jeu. |
k_EDurationControlNotification_ExitSoon_5h | 4 | La personne a atteint la limite de temps de jeu autorisé et doit quitter le jeu. |
k_EDurationControlNotification_ExitSoon_Night | 4 | La personne a joué jusqu'à l'heure autorisée (22 h) et doit quitter le jeu. |
Fonctions associées :GetDurationControlBSetDurationControlOnlineStateEDurationControlOnlineState
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.
Nom | Valeur | Description |
k_EDurationControlOnlineState_Offline | 1 | Partie hors ligne. |
k_EDurationControlOnlineState_Online | 2 | Partie en ligne. |
k_EDurationControlOnlineState_OnlineHighPri | 3 | Partie en ligne : le jeu demande à Steam de ne pas forcer la fermeture du jeu. |
Fonctions associées :GetDurationControlBSetDurationControlOnlineStateConstantes
Voici les constantes destinées à être utilisées avec ISteamUser.
Nom | Type | Valeur | Description |
STEAMUSER_INTERFACE_VERSION | const char * | "SteamUser019" | |