Inventaires d'utilisateur

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

L'API Inventaire vous permet d'accéder à la plupart des mêmes informations que la page Roblox Mon inventaire .Vous pouvez vérifier si un utilisateur possède des articles individuels et récupérer la liste complète des articles que possède un joueur.

Les réponses de l'API d'inventaire incluent des articles des catégories suivantes :

  • Vêtements (accessoires, bas, vêtements classiques, chaussures, hauts)
  • Achats et récompenses (badges, passes, endroits achetés, serveurs privés)
  • Objets d'avatar (animations d'avatar, têtes classiques, émotes, visages, cheveux, têtes)

Avant d'utiliser l'API d'inventaire , vous devez générer une clé API ou configurer OAuth 2 pour votre application.Les exemples de cette page utilisent des clés API.

Vérifier la propriété de l'élément

Si vous voulez vérifier si un utilisateur possède un élément spécifique (par exemple, un ID limité, un badge, un passe ou un serveur privé), utilisez le paramètre filter pour vérifier une liste séparée par une virgule de un ou plusieurs ID.Cet exemple de code vérifie trois ID de ressources :


const https = require('node:https');
const userId = 11111111111;
const hostname = 'apis.roblox.com';
const path = `/cloud/v2/users/${userId}/inventory-items`;
const params = '?filter=assetIds=62724852,1028595,4773588762';
const url = 'https://' + hostname + path + params;
const apiKey = '123456789012345678901234567890123456789012345678';
const options = {
headers: {
'x-api-key': `${apiKey}`,
},
};
https
.get(url, options, (response) => {
console.log('statusCode:', response.statusCode);
let data = '';
response.on('data', (d) => {
data += d;
});
response.on('end', () => {
if (response.statusCode === 200) {
const jsonData = JSON.parse(data);
console.log('Response Data:', JSON.stringify(jsonData, null, 2));
} else {
console.error('Error:', response.statusCode, response.statusMessage);
}
});
})
.on('error', (e) => {
console.error(e);
});

La réponse suivante indique que l'utilisateur possède l'un des trois éléments :


{
"inventoryItems": [
{
"path": "users/11111111111/inventory-items/VVNFUl9BU1NFVF9JRD0yMDAxMDUxMTkzODg",
"assetDetails": {
"assetId": "1028595",
"inventoryItemAssetType": "CLASSIC_TSHIRT",
"instanceId": "200105119388"
}
}
],
"nextPageToken": ""
}

Filtrer les éléments

Si vous voulez afficher, par exemple, seuls les objets de collection que possède un utilisateur, utilisez le même code que ci-dessus, juste avec un paramètre différent filter.


const params = '?filter=onlyCollectibles=true;inventoryItemAssetTypes=*';

Mélangez et associez des filtres en utilisant une liste séparée par une virgule. Voici quelques exemples :


filter=onlyCollectibles=true;inventoryItemAssetTypes=HAT,CLASSIC_PANTS
filter=badgeIds=111111,222222;gamePassIds=777777;privateServerIds=999999
filter=gamePasses=true;badges=true

La plupart des appels à l'API n'exigent aucune autorisation spécifique, mais plusieurs filtres nécessitent des permissions de lecture d'inventaire.Pour plus d'informations, voir filtrage .

Paginer les résultats

Si une réponse inclut une valeur pour nextPageToken , utilisez cette valeur dans le paramètre pageToken de la requête suivante pour récupérer la page suivante.Pour plus d'informations, voir Pagination.

Si le nombre de résultats est divisible par maxPageSize (par exemple, vous avez 50 résultats et un maxPageSize de 25), vous pouvez rencontrer une situation dans laquelle votre réponse inclut une valeur pour nextPageToken , mais une demande utilisant ce jeton ne renvoie aucun résultat :


GET /cloud/v2/users/{userId}/inventory-items?maxPageSize=25&pageToken=cccDDD
{
"inventoryItems": [],
"nextPageToken": ""
}

Lors de l'implémentation de la pagination dans votre application, la meilleure pratique est de vérifier non seulement pour un non- vide nextPageToken , mais aussi pour un non- vide inventoryItems matrice.